牛刀小试 autorelease


《Objective-C基础教程》看完,发现Xcode4.2以后手动内存管理用处小了很多,

《IOS编程》正好也讲内存,就试了一下4.2中还有些传承的autorelease,

结果没想象中死的那么惨 哈哈



说说自己的理解 就拿description方法来说:


-(NSString*)description

{

    NSString* description = [[NSString alloc]initWithFormat:@"%@,%@,%d,%@",name,sNumber,value,dateOfSomething];


    //release加在这的话 会让对象在return之前被释放掉

    return [description autorelease];

    //release加在这根本不会被执行    

}


所以需要有一种暂时把值传走,过段时间再release的机制,就是autorelease啦


类方法也是一个意思

+(id)randomPos;

{

    NSArray* nameString = [NSArray arrayWithObjects:@"ru",@"ta",@"kan", nil] ;

    NSArray* numString = [NSArray arrayWithObjects:@"7",@"321",@"564", nil] ;

    


    int idx = rand()%[nameString count];

    int idx2 = rand()%[numString count];

    

    return [[[self alloc ]

             initWithName:[nameString objectAtIndex:idx] 

             sNumber:[numString objectAtIndex:idx] 

             value:idx 

             date:[NSDate date]]

            autorelease];

    

}





最后上个小截图,是cocoaApp模板的应用:





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值