When writing a model today, I suddenly found the problem of "cannot assign to 'self 'outside of a method in the init family. And then solve the problem by searching. record it.
Sometimes we do not pay attention to writing the first letter after init into lower case when rewriting the init method of the parent class, an error is reported when the initialization method (Self = [Super init];) of the parent class is called in this method. The error message is as follows: Error: cannot assign to 'self 'outside of a method in the init family
Cause: You can only assign values to self in the init method,Xcode determines whether it is an init method rule: The method returns the ID with the name init+ Uppercase letters + others.Example:-(ID) initwithxxx;
Error code:
-(ID) Myinit {If (Self = [Super init]){
...
}
Return self;
}
-(ID) Initwithmy {
If (Self = [Super init]){
...
}
Return self;
}
Solution:
-(ID) Initwithmy {
If (Self = [Super init]){
...
}
Return self;
}