OC -- @property

作者: J_coco | 来源:发表于2016-01-21 11:39 被阅读0次

    建立一个Person类

    @interface --> @end ==> .h中类的声明
    @implementation --> @end ==> .m 中类的实现
    @property(nonatomic,assgin/copy/strong) 属性类型 属性名(不需要'_') ==> .h 中属性声明

    @property:
    创建属性和属性的set/get 方法
    产物:->1.'_'属性 2.set方法 3.get方法

    @property 声明属性的关键字
    1.原子性:nonatomic -> 在多线程环境下,不存在线程保护 -->速度快(建议使用)
    2.类型:assign -> 属性类型是 BOOL int long float double NSInteger
    copy -> 字符串 NSString
    strong/retain -> (除了字符串以外的)对象类型
    3.读写性:readwrite -> set 和 get 可读可写
    readonly -> get 只读
    读写性可以省略 -->默认是 readwrite

    属性名称不需要加下划线 -> 产生的属性自带 '_'
    

    Person.h

    #import <Foundation/Foundation.h>
    
    @interface Person : NSObject
    
    @property(nonatomic,copy)NSString *name;
    @property(nonatomic,assign,readwrite)int age;
    @propert(nonatomic,strong)int idcard;
    
    @end
    

    Person.m

    #import "Person.h"
    @implementation Person
    
    @end
    

    main.m

    #import <Foundation/Foundation.h>
    #import "Person.h"
    
    int main(int argc, const char *argv[])
    {  
      @autoreleasepool
      {
        Person *p = [[Person alloc]init];
    
        //1.构造
        int age = 18;
        NSString *string = @"呆毛";
        int idcard = 1234567890987;
    
        //2.写入
        [p setAge:age];
        [p setName:string];
        [p setIdcard:idcard];
    
        3.读取
        NSLog(@"age -> %d",[p age]);
        NSLog(@"name -> %@",[p name]);
        NSLog(@"idcard -> %d",[p ])
      }
      return 0;
    }
    

    相关文章

      网友评论

        本文标题:OC -- @property

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