Xcode 在';自我';未设置为';[(超级或自我)初始化…]';
如果我分析我的项目,我会得到以下警告: “self”未设置为的结果时使用的实例变量 “[(超级或自我)初始化…” 我必须改变什么Xcode 在';自我';未设置为';[(超级或自我)初始化…]';,xcode,instance,Xcode,Instance,如果我分析我的项目,我会得到以下警告: “self”未设置为的结果时使用的实例变量 “[(超级或自我)初始化…” 我必须改变什么 谢谢 如今,苹果的官方建议是: - (id)init{ if(![super init]){ return nil; } _rssItems = [[NSMutableArray alloc]init]; return self; } 其思想是允许init(特别是在本例中,[super init])返回除self之外的
谢谢 如今,苹果的官方建议是:
- (id)init{
if(![super init]){
return nil;
}
_rssItems = [[NSMutableArray alloc]init];
return self;
}
其思想是允许init
(特别是在本例中,[super init]
)返回除self之外的对象,在这种情况下,预期的行为是使用该对象——最简单的处理方法是将self
设置为super
返回的任何对象。还要注意,返回self无论self
是否为零,code>都可以正常工作,因此if
会反转
当然,大多数类都不会执行这种切换技巧——但无论如何,这是一种很好的做法,因为苹果希望每个人都能在其init
中使用这种模式,所以即使您的子类当前在没有分配给self
的情况下工作,他们将来可以在没有任何警告的情况下轻易地改变这种行为。谢谢你,但现在我的应用程序崩溃了,因为EXC\u坏访问。。。奇怪的是,上一期已经不见了。
- (id)init{
self = [super init];
if(self){
_rssItems = [[NSMutableArray alloc]init];
}
return self;
}