首页 > 其他 > 详细

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

时间:2016-01-19 12:15:11      阅读:215      评论:0      收藏:0      [点我收藏+]

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

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

原文:http://www.cnblogs.com/sleepingSun/p/5141709.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!