【发布时间】:2012-04-19 03:42:02
【问题描述】:
当我声明一个没有存储规范 + 实例变量的属性时,一切正常:
@interface Foo : NSObject {
NSSomething* mySomething;
}
@property (readonly) NSSomething* mySomething;
然而,当我删除实例变量声明时,我得到一个编译错误,指出我必须指定存储类型:
@property (readonly, strong) NSSomething* mySomething;
这让我想知道我是否应该声明strong,但无论如何它应该是只读的.. 这里发生了什么?在哪种情况下我应该使用哪种方法?
编辑(对于那些无法复制问题的人):
【问题讨论】:
-
我无法复制,您是否可以提供任何其他信息?这是我试过的代码:pastebin.com/4Mj1rzHd(用
clang -fobjc-arc Untitled.m -framework Foundation编译) -
对于无法重现此问题的其他人,我相信这是 Xcode 4.2 附带的 LLVM 编译器版本本地化的问题,并且在 4.3+ 中不再警告您。我在 4.3 下编写的框架代码遇到了这个问题,但人们抱怨 4.2 下的编译错误。
标签: objective-c properties automatic-ref-counting instance-variables