我正在尝试编写一些Objective-C(对我来说是新的,我的背景更多是C ++),并且想要创建一个像这样的CFString:
CFString myString;
当我尝试构建项目时出现以下错误:
"'CFString' undeclared" (first use in this function)
阻止建筑。 我以为我忘了包含相关的标题,但我找不到要包含的标题。当我查看一些示例代码时,我从未看到“CFString”而是“CFStringRef”对象,定义为
A reference to a CFString object.
typedef const struct __CFString *CFStringRef;
我开始怀疑在代码中没有可以引用的CFString这样的东西,但我觉得我错了。我呢? 是否无法创建CFStrings?它是特定于CFString还是Objective-c中的所有结构?
答案 0 :(得分:1)
CFStringRef
是Core Foundation库的一部分,它不是ObjC而是普通的C.Core Foundation使用运行时来创建实例,这个运行时将调用回调来初始化结构内容并管理实例内存。
这就是没有CFString
的原因,因为你不应该在堆栈上创建静态实例,而是调用相应的create函数,然后向运行时询问一个已经为你初始化的所有内容的新实例。对于CFStringRef
,这将是CFStringCreate()
,另请参阅:http://developer.apple.com/library/ios/#documentation/CoreFoundation/Conceptual/CFStrings/introCFStrings.html