OC中属性及方法

1.声明式属性
    a.实例变量
    b.声明属性
        自动生成setter/getter方法
        .h ->@property 属性类型 属性名;
        .m ->@synthesize 属性名 = 实例变量名;
    c.点语法
2.IOS5中的属性
    a.实例变量  省
        会自动生成实例变量,实例变量名 等于 _属性名
    b.声明属性
        @property 属性类型 属性名;
        @synthesize 属性名 = 实例变量名;
    c.点语法
3.IOS6中的属性
    a.实例变量 省
    b.声明属性
        @property 属性类型 属性名;
        @synthesize 属性名 = 实例变量名; 省
    c.点语法
总结:
    a.实例变量 省
    b.声明属性
        @property 属性类型 属性名;
        @synthesize 属性名 = 实例变量名; 省
    c.点语法

4.初始化方法
    创建对象的时候,也需要进行初始化操作。
    如果进行默认值的初始化,调用无参的初始化方法。
    如果进行指定值的初始化,调用有参的初始化方法。
    语法规则 :
    无参的初始化方法,与生俱来就拥有,可以不用自定义。
    -(id)init{
        self = [super init];
        if(self){

}
        return self;
    }    
    有参的初始化方法,只能自定义。
    -(id)initWithAge:(int)age andSex:(char)sex{
        self = [super init];
        if(self){
            对属性值的初始化;
        }
        return self;
    }
5.id类型
    任意类型指针,与C语言中的void*使用相似。
    仅仅指向内存中的对象,并不关注内存中数据类型。
    id类型也不能直接使用,如果使用必须做类型转换操作。
        类型转换是有风险的,引用类型必须与空间类型相匹配。
    id类型只能指向(引用)对象所在的内存区域。
6.super关键字
    super关键字代表一个类的父类。
    可以在子类中调用父类中的方法,此时使用super关键字。
    [super init];真正的初始化操作由父类解决。
7.OC中的方法
    方法分为两种:
    a.实例方法
        实例方法只能通过实例(对象)来调用。
        语法规则 :
        -(返回值类型)方法名; -符号 代表实例方法
        实例方法解决与实例有关的相关操作。(数据信息)
        实例方法经常用来处理内存中的数据。
    b.类方法
        类方法只能通过类来调用。
        语法规则 :
        +(返回值类型)方法名; +符号 代表类方法。
        类方法解决与类信息相关的相关操作。(类代码信息)
        类方法经常用来处理与代码相关的操作。(开辟内存空间大小)
        作用:分配内存空间时,经常使用类型方法。
8.self关键字
    self关键字,不但可以在实例方法中使用,也可以在类方法中使用。
    在实例方法中使用self关键字,代表当前实例。
        在当前实例中,如果需要调用其它的实例方法。
        [self otherMethod];
    在类方法中使用self关键字,代表当前类。
        在当前类,如果需要调用其它的类方法。
        [self otherMethod];
        [类 otherMethod];
        在类方法中,是不可以调用实例变量,当然也不可以调用实例方法,当然也不可以调用属性。
        类方法主要用来创建对象。
9.工厂方法
    用来创建对象的。
    创建对象更简单。
    工厂方法分为:
        无参的工厂方法:只会创建一个默认值的对象。
        有参的工厂方法:会创建一个指定值的对象。
    工厂方法命名:
        类方法
        方法名:去掉类的前缀,首字母小写。
        (+)string;
        (+)stringWith… and…;
    工厂方法需要自己写。

NSString -> NS前缀(公司名缩写,二、三个字母组成,并大写) String 类名
    TRString -> TR(tarena) String类名
    HW… -> HW(helloWorld)

上一篇:Codeforces 877E - Danil and a Part-time Job 线段树+dfs序


下一篇:DataGrip:Error encountered when performing Introspect schema xxx 错误的解决方法