1.关于点语法
self.shopsview.frame.size.width
这样连续的点语法的使用后面必须是实例变量,也就是可以通过@property写出来的变量。但是点语法不可以调用对象方法和类方法。这些只能通过[]来调用。
2.关于error: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{
self = [super init];
……
}
解决方法:- (id) initWithMy
{
self = [super init];
}
总之用init书写initWith XXXX这种类型的方法时候,init后面的第一个字母必须大写,有别于其他方法。否则报错
上一段摘自别人的博客。