OC -- @property
程序员文章站
2024-01-14 22:33:34
...
建立一个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;
}
上一篇: Weak
下一篇: swift deinit 不被执行