打开上一次工程目录
//1.线程安全相关(原子性)
//》atomic(原子操作)默认 (会保证线程安全,但是会损失性能)
//》nonatomic(非原子操作)
//》一般情况下,都是使用nonatomic,可以提高程序的执行效率
//2.内存管理相关
//》MRC下,retain(强引用)、copy(强引用)、assign(弱引用、赋值、默认)
//》ARC下,strong(强引用)、weak(弱引用)
//3.读写属性相关
//》readwrite(同时生成 setter 和 getter方法)(默认)
//》readonly (只会生成getter方法)
//4.重命名相关
//》setter方法重命名 方法名称后必须附带一个
//》getter方法重命名
#import <Foundation/Foundation.h>
@interface Person : NSObject {
NSString *_name;
NSUInteger _age;
NSMutableString *_sex;
}
@property(nonatomic, strong) NSString *name;
@property(nonatomic,assign) NSUInteger age;
@property(nonatomic,copy) NSMutableString *sex;
@end
main函数
#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
Person *per = [[Person alloc] init];
per.name = @"小名";
per.age = 20;
NSLog(@"name = %@ age = %li", per.name, per.age);
//copy和strong的使用区别
NSMutableString *sex = [NSMutableString stringWithString:@"男"];
per.sex = sex;
NSLog(@"%p %p",per.sex, sex);
//打印结果:0x1005000a0 0x100500220
}
return 0;
}