是否可以在Objective-C扩展中定义ivars?

时间:2010-10-29 03:56:52

标签: objective-c cocoa cocoa-touch

我想知道是否可以在.m文件中写这样的东西:

@interface MyController () {//ERROR here
    Foo *privateFoo; 
}
@end

我做到了但是得到了: Expected identifier or '{' before '{' token,我想我听到/观看了一个视频(WWDC2010)说这是可能的或者是可能的,目前只有一些架构支持它......但我不确定,我不记得视频名称。

我希望我能在这里得到一些建议。

伊格纳西奥。

3 个答案:

答案 0 :(得分:8)

您可以在Xcode 3.2.3或3.2.4中使用clang(“LLVM编译器1.5”)在现代运行时(64位/ iOS)中执行此操作,方法是将-Xclang -fobjc-nonfragile-abi2添加到其他C标志构建中设置。 (请注意,这实际上是一个选项,而不是两个选项。)

此标志的另一个作用是默认情况下合成属性。

答案 1 :(得分:0)

无法以这种方式处理它。类别仅定义附加行为,而不是状态。

答案 2 :(得分:0)

虽然它没有明确说明,并且线程很旧,但本文档在第75页有一个示例,其中在扩展中添加了一个ivar。

The Objective-C Programming Language

相关问题