gpt4 book ai didi

ios - 如何转发声明 CoreFoundation 类型?

转载 作者:行者123 更新时间:2023-11-29 13:01:15 25 4
gpt4 key购买 nike

转发声明 Objective C 类很容易。

@class ClassWhoseHeaderNotYetImported;

但是,此策略不适用于 CoreFoundation 类型,如 CVImageBufferRef 或任何继承自 CFTypeRef 的类型。在 Objective-C 中转发声明 CoreFoundation 类型的正确方法是什么?

最佳答案

@class 不适用于 Core Foundation 类型,因为它们不是类,它们是结构,例如如果您查看 CVImageBufferRef 的定义,您会看到:

typedef struct __CVBuffer *CVBufferRef;
...
typedef CVBufferRef CVImageBufferRef;

因此,为了前向声明 CF 类型,您需要知道底层结构是什么。您可以使用 ⌘-click 在 Xcode 中相当轻松地查找它。如果有多个级别,就像这里一样,您不需要声明所有级别(除非您需要使用中间层)。以下应该有效

typedef struct __CVBuffer *CVImageBufferRef;

如果您真的懒得去查找类型,您可以使用 void *。它在技术上并不安全,但它在 iOS 或 OSX 上永远不会失败,除非 Apple 严重地 f-s 搞砸了。

关于ios - 如何转发声明 CoreFoundation 类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19720561/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com