我刚开始用ARC编程, 当我测试weak
,strong
@property
用demo时,我发现一个奇怪的东西; 这里是代码:iOS ARC @property and self
在.h文件中,我创建了一个成员变量ctView
并添加了@property
来管理getter和setter。
@interface ViewController : UIViewController
{
CTView * ctView;
}
@property(nonatomic,strong)CTView * ctView;
然后在.m文件中,viewdidload
方法,我打印出点地址。
ctView = [[CTView alloc] initWithFrame:CGRectMake(10,10,300,400)];
NSLog(@"%p %p ",self.ctView,ctView);
登录:
0x0 0x7156530
谢谢你们了,我犯了一个错误的是,MRC代码是在LLVM GCC 4.2编译器和ARC码是苹果LLVM 4.1,这个问题使得MRC应用程序崩溃,:)
问题是什么? –
@Puneeet问题是该属性返回一个'nil'指针,而实例变量已经初始化。 –
我坦白地不明白downvotes。这是一个学习Objective-C的人的一个合理的问题,它也很清晰,写得很好。 –