instancetype和id
- instancetype:自动识别当前是哪个类在调用,就会变成对应类的对象
- 为什么不用id,因为id不能使用点语法,id可以调用任何对象的方法,不利于编译器检查错误
xib注意事项
- xib不绑定class就不能拖线,而且拖线要拖到分类里
UIDatePicker
- UIDatePicker有默认的尺寸,可以不用设置frame
pch的作用
- pch里面的所有内容都是共享
- 存放一些公用的宏
- 存放一些公用的头文件
- 自定义Log(调试阶段的时候才需要输出日志,NSLog是比较消耗资源的)
- 宏里面的可变参数:...
- 函数中的可变参数:VA_ARGS
- 调试阶段:#define XMGLog(...) NSLog(VA_ARGS)
- 发布阶段:#define XMGLog(...) // NSLog(VA_ARGS)
- 更简单的判断方式:
#ifdef DEBUG // 调试阶段
#define XMGLog(...) NSLog(__VA_ARGS__)
#else // 发布阶段
#define XMGLog(...)
#endif
-
和C语言混编时可能会出现问题,所以需要在pch文件中进行判断
#ifdef __OBJC__ #endif
XCode6以后项目默认不生成pch文件是因为项目越大,由于pch文件的原因,可能会导致编译时间过长的问题