标签:
1、当一个对象从xib或者storyboard中加载完毕之后,就会调用一次
- (void)awakeFromNib;
2、当一个对象是从一个文件中解析出来的时候,就会调用这个方法。
- (id)initWithCoder:(NSCoder *)decoder;
解析完如果发现解析的是xib文件,则就会调用 - (void)awakeFromNib;
3、如果一个对象是从代码创建的时候,就会调用这个方法
- (id)initWithFrame:(CGRect *)frame;
所以一些程序的初始化操作的时候,对象的创建有可能是从代码也有可能是从文件中创建,所以必须把初始化代码同时放在 initWithCoder: 和 initWithFrame中实现。
所以程序初始化比较严谨的操作如下:(自定义View)
// 从文件中创建控件的时候一定会调用这个方法
- (id)initWithCoder:(NSCoder *)decoder
{
if(self = [super initWithCoder:]){
[self setup];
}
}
// 这个方法是从代码创建控件的时候一定会调用
- (id)initWithFrame:(CGRect*)frame
{
if(self = [super initWithFrame:]){
[self setup];
}
}
// 初始化操作
- (void)setup
{
// 初始化操作
}
4、判断 Xcode的软件版本 (多版本处理)
添加头文件:#import <Availability.h>
判断里面的 #define __IPHONE_6_1 60100 这个宏定义就行。
假设 Xcode 6.1 最高的 SDK版本是 IOS8.0 则这个宏定义的值最高就只能到 #define __IPHONE_8_0 通过这个方法来判断软件的版本。
标签:
原文地址:http://www.cnblogs.com/cjt5132/p/4637555.html