那些年,我们常掉进去的坑
1.属性名不能以 new 开头,比如 newImage
在控制器当中,我们常常用类扩展的形式添加属性,比如:
1 #import "ViewController.h" 2 3 @interface ViewController () 4 @property (weak, nonatomic) UIImageView *BgImage; 5 6 @end 7 8 @implementation ViewController 9 10 - (void)viewDidLoad { 11 [super viewDidLoad]; 12 }
此时,如果属性写成如下形式:
我们可以明显的看到一个红点,如果此时你看到此问题,会各种找错,发现代码都没有写错,但是就是一直报错,你可能苦苦找不到解决问题的方案!
温馨提示:
1、所有成员变量或者属性,都不能够以 new开头,new 是系统默认保留的关键字,如果以它开头,系统默认它为构造方法。
2、自定义构造方法时,有的人可能写成:inintwithName:(NSString *)name;这样的形式,此时,系统暂时不会报错,如下图:
但是,在你实现该方法时,给你报一个大大的错,而报错位置却不在inintwithName:(NSString *)name这里,而是在其内部的代码中,如下图:
原因是,如果要重写构造方法,必须以 init 开头,后面使用驼峰标识,如果不这样,系统默认这不是构造方法,而是 initwith 方法,不是构造方法,内部不嫩巩固调用父类的构造方法,so easy!
2.拖控件时,比如按钮,如果按钮属性不改为 custom, 默认是系统的,是无法通过代码设置图片的.
3.XIB 问题:
控制器默认会自动查找对应的 XIB 来创建 view
1.去掉 Controller 的 Xib
2.找同名的 Xib
答应自己
将永远面带一种愉悦,
向所遇到的每一个生灵送上一份可心的笑意;
将如此忙于完善自己,
而无暇对他人吹毛求疵;
将过于豁达,不会忧郁;
过于高贵,不屑动气;
过于硬朗,不知畏惧;
过于快活,不容心存芥蒂!