码迷,mamicode.com
首页 > 其他好文 > 详细

内存管理 对象的初始化及比较 对象内容的描述

时间:2015-12-12 14:04:01      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:

1.init

2.load load只要类所在的文件被引用就会被调用,所有如果类没有被引用进项目,就不会有load调用

3.initialize 是在类或者其子类的第一个方法被调用前调用,即使类文件被引用进来,但是没有使用,那么initialize也不会被调用。

4.new  是alloc init的组合

//
//  main.m
//  内存管理
#import <Foundation/Foundation.h>
#import "Person.h"
//ARC自动管理内存
int main(int argc, const char * argv[]) {
    @autoreleasepool {
        //1.alloc分配内存
        Person *per = [[Person alloc]init];
      
        //2.清楚内存
        // C malloc free c++ 构造函数 析构函数 java GC
        //OC  引用计数 (+1) alloc new rerain copy = +1
        //release释放
        //retainCount 计数
       
        NSUInteger count = per.retainCount;
        NSLog(@"count=%lu",count); // 1
        [per release];
         per=nil;
        count = [per retainCount];
        NSLog(@"%lu",count);
    }
    return 0;
}

对象的比较

  hash 比较isEqual 还比较哈希值

  isEqualto 自己制定规则 调用isEqual

compare 字典的顺序

-(BOOL)isEqualTo:(id)object{ //制定比较规则
    Person *per = (Person *)object;//转换成Person类型的
    return [per.name isEqualTo:self.name]&&per.age==self.age; name和age都相等
}

 查看类中的对象内容的描述

     

     Person *per = [[Person alloc]init];
        per.name = @"xiaowang";
        per.age = 18;
//查看类中的对象内容的描述
        NSLog(@"%@",per);


-(NSString*)description{ //类的一个描述
    return [NSString stringWithFormat:@"[%@,%d]",self.name,self.age];
}
2015-12-12 13:15:07.627 内存管理[745:44892] [xiaowang,18]

 

内存管理 对象的初始化及比较 对象内容的描述

标签:

原文地址:http://www.cnblogs.com/WJR12/p/5041094.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!