09-UI进阶(UIPickerView和键盘处理)

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文件的原因,可能会导致编译时间过长的问题

你可能感兴趣的:(09-UI进阶(UIPickerView和键盘处理))