那些年,我们常掉进去的坑

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

posted @ 2016-01-19 11:43  晒太阳的仙人掌  阅读(175)  评论(0编辑  收藏  举报