美文网首页
OC的成员变量和属性

OC的成员变量和属性

作者: 小如99 | 来源:发表于2021-03-09 14:39 被阅读0次

    self. 和 self->的区别?

    1. self. 是调用get方法
    2. Self. 是当前本身,是一个指向当前对象的指针
    3. self->是直接访问成员变量

    成员属性和成员变量的区别

    @interface Log : NSObject
    {
        @protected
        NSString* documentsDirectory; //成员变量
        NSString* fileName;
    }
    @property (copy) NSString* documentsDirectory; //成员属性
    @property (copy) NSString* fileName;
    

    成员属性 @property 在编译时会做以下三个动作

    1. 自动生成get
    2. 自动生成set方法
    3. 生成成员变量_documentsDirectory,即成员变量名前加个底杠

    由此可见,成员属性包含了成员变量

    所以调用成员变量就是用self->调用,即self->documentsDirectory,

    调用成员属性用self.调用,即self.documentsDirectory,如果想用self->调用成员属性就只能self->_documentsDirectory,这样调用太麻烦,一般会再用@synthesize对带底杠的成员属性名重新定名

    @synthesize fileName, documentsDirectory

    这样就可以直接访问成员属性名self->documentsDirectory

    更详细的逻辑请参考这篇文章

    解惑——iOS中成员变量和属性区别

    相关文章

      网友评论

          本文标题:OC的成员变量和属性

          本文链接:https://www.haomeiwen.com/subject/tmxbqltx.html