在我的一个课程中,我有一个-(id) init
方法。在该方法中发生的第一件事是调用[super init]
这一切都很好,但我最近将我的代码导入到一个新的xcode项目中。我在这一行收到错误:
错误:自动引用计数问题:委托init调用的结果必须立即返回或分配给“self”
为什么会出现此错误?是因为这是在ARC系统下折旧的吗?或其他什么?
答案 0 :(得分:3)
你是如何使用旧系统的?您希望(在两个版本上)都可以
self = [super init];
if (self) ...
return self;
答案 1 :(得分:1)
它之前适用于您,因为LLVM比之前的GCC严格得多。海湾合作委员会没有发现错误,正如@vakio在他的评论中所指出的那样,它起作用的原因是链中某处,self = [super init]
存在。 LLVM在编译期间检测到此错误,并阻止您编译错误的代码。
答案 2 :(得分:0)
这对我有用:
需要在自己中分配一些东西。
-(id) init {
self = [super init];
return self;
}