1....简述OC中内存管理机制,与retain配对使用的方法是dealloc还是release,为什么?需要与alloc配对使用的方法是dealloc还是release,为什么?readwrite,readonly,assign,retain,copy,nonatomic,atomic,strong,weak属性的作用?
OC中使用了一种叫做引用计数的机制来管理对象,如果对一个对象使用了alloc,[Mutable]copy,retain,那么你必须使用相应的release或者autorelease,也可以理解为自己生成的对象,自己持有,非自己生成的对象,自己也能持有,在不需要自己持有的对象时释放.非自己持有的对象无法释放.生成并持有对象<alloc,new,copy,mutableCopy等>,持有对象<retain>,释放对象<release>,废弃对象<dealloc>.readwrite(默认):可读可写,表示既有getter方法,也有setter方法.readonly:表示只有getter方法,没有setter方法.nonatomic:不考虑线程安全.atomic(默认):线程操作安全.strong(默认):ARC和MRC下retain一样,weak(ARC下):和(MRC下)assign类似,区别是当weak指向的内存释放掉后自动置为nil.防止野指针.unsafe_unretained声明一个若引用,但不会自动置为nil,可能会出现野指针
2........线程安全下的setter和getter方法
-(NSString *)value{
@synchronized (self){
return [[_value retain] autorelease];
}<