今天在編寫model時,突然發現了“Cannot assign to 'self' outside of a method in the init family”問題。后通過搜索解決了此問題,記錄之。
有時候我們重寫父類的init方法時不注意將init后面的第一個字母寫成了小寫,在這個方法里面又調用父類的初始化方法(self = [super init];)時會報錯,錯誤信息如下:error:Cannot assign to 'self' outside of a method in the init family
原因:只能在init方法中給self賦值,Xcode判斷是否為init方法規則:方法返回id,并且名字以init+大寫字母開頭+其他 為準則。例如:- (id) initWithXXX;
出錯代碼:
- (id) Myinit{ if(self = [super init]) {
...
}
return self;
}
- (id) initwithMy{
if(self = [super init]) {
...
}
return self;
}
解決方法:
- (id) initWithMy{
if(self = [super init]) {
...
}
return self;
}
新聞熱點
疑難解答