1.属性的内部实现原理:
assign
retain
copy
2.dealloc释放实例变量
dealloc 的方法 是为了setter方法里面 其实没有释放的实例变量
- (void)dealloc{
    [_name release];
    [_gender release];
    [super dealloc];}
3.便利构造器方法
代码:
+ (instancetype)personWithName:(NSString *)name age:(NSInteger)age
gender:(NSString *)gender{
    Person *p = [[Person alloc]initWithName:name age:age gender:gender];
//    [p release];// 写在上面再return,p变成了野指针
      return [p autorelease];// BingGo正解 MRC
//    [p release];// 写在下面,先return,内存泄漏}
4.collection内存管理
1⃣️:
Person *p1 = [[Person alloc]init];
NSMutableArray *mArr1 =[NSMutableArray array];
 // 将对象加入容器中
[mArr1 addObject:p1];
// p1 会被retain
NSLog(@"%lu",[p1 retainCount]);
2⃣️:
        // 将对象移除容器
         [mArr1 removeObject:p1];
        // p1 会被release
        NSLog(@"%lu",[p1 retainCount]);
        [p1 release];
        p1 = nil;
5多态:父类指针可以指向子类对象
NSString *str = [[NSMutableString alloc]init];// 子类对象,父类指针可以指向
        NSLog(@"%@",[str className]);
        // 在编译时 NSString
        // 在运行时 NSMutableSting
        // NSCFString
🐷意:
( 1 ):
/* 与ARC相比多了.m中的
        1⃣️:- (void)dealloc{
        [_name release];
        [_num release];
        [super dealloc];}
        和main.m中的
        2⃣️:[s1 release];
        [s2 release];
        s1 = nil;
        s2 = nil;*/
(2):
NSMutableString *ms = @"123".mutableCopy;
posted on 2015-11-21 16:34  sharkHZ  阅读(126)  评论(0编辑  收藏  举报