oc小总结

1、nil对象可以接受任何消息,但无响应;

2、NSString等的引用计数可认为无穷大;

3、要使用Copy、Mutablecopy要实现NSCopyding、NSMutablecCopying协议;

4、oc中,变量和方法能够同名,因为调用方式不同,能够区分;

5、@selector(print)属于SEL类型;

6、若两对象循环引用,那么不能同时retain,否则不能被释放;

7、atomic是原子性的,nonatomic是非原子性的,属性默认是非原子性的,原子性的不能多个线程同时运行,而非原子性的可以;

8、copy方法创建一个完全相同的新对象,二retain不创建新对象,只是将原来的对象引用计数加1;

9、引用计数为1的对象,不能autorelease两次或两次以上;

10、浅拷贝只拷贝源对象,而深拷贝会把原对象引用的对象也拷贝一份;

11、对于实例变量,public为公开类型,protected为受保护类型,private为私有类型;

12、copy和retain行的get方法和set方法;

。h:
#import <Foundation/Foundation.h>
#import "ClassTwo.h"

@interface ClassOne : NSObject

@property(nonatomic,assign) ClassTwo *Copy;
@property(nonatomic,assign) ClassTwo *Retain;

- (id)Copy;
- (void)setCopy:(ClassTwo *)c;

- (void)setRetain:(ClassTwo *)retain;
- (id)Retain;

@end

。m:

#import "ClassOne.h"

@implementation ClassOne
@synthesize  Copy=_Copy;
@synthesize Retain=_Retain;

- (id)Copy
{
    return _Copy;
}

- (void)setCopy:(ClassTwo *)c
{
    [_Copy release];
    
     _Copy=[c copy];
}

- (void)setRetain:(ClassTwo *)retain
{
    [_Retain release];
    _Retain=retain;
    [_Retain retain];
}


- (id)Retain
{
    return _Retain;
}




@end
原文地址:https://www.cnblogs.com/yueyuanyueyuan/p/3550952.html