OC -- @property

建立一个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;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容