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

黑马程序员 内存管理之proterty,autorelease

时间:2014-05-08 18:33:51      阅读:303      评论:0      收藏:0      [点我收藏+]

标签:int   get   c   set   管理   a   

#import <Foundation/Foundation.h>

@interface Person : NSObject

{

       Book * _book;

       int _age;

}

/*

   oc对象

   1.@property能制动生成setter和getter方法

   2.retain告诉编译器自动生成setter里的retain

   3.atomic:低性能(默认情况下)

      nonatomic:高性能

  */

@property (nonatomic, retain) Book *book;

 /*

    非oc对象

   1.@property能制动生成setter和getter方法

   2.assign告诉编译器自动生成setter的assign设置

   */

@property (nonatomic, assign) int age;

@end

@implementation Person

 - (void)dealloc

   {

     [_book release];

     [super dealloc];

   }

@end

@interface Book : NSObject

@end

@implementaton Book

@end

int main()

{

  /*

     1.当调用autorelease方法,会返回对象本身,对象计数器不做任何改变

     2.autorelease会把对象放在自动释放池里

     3.当自动释放池被销毁时,对释放池里的所有对象进行一次release

     4.所有的释放池都是放在内存栈中,采取先进后出原则,把所有的对象放在栈顶

    */

    @autoreleasepool

    {// 创建自动释放池

        Person *P = [[[Person alloc] init] autorelease];

         @autoreleasepool

            {

                Book *b = [[[Book alloc] init] autorelease];

             }

 

     }// 销毁自动释放池

   return 0;

}

void test()

{

  Person *p = [[Person alloc] init];

  Book *b1 = [[Book alloc] init];

  p.book = b1;

  Book *b2 = [[Book alloc] init];

  p.book = b2;

  [b2 release];

  [b1 release];

  [p release];

}

黑马程序员 内存管理之proterty,autorelease,布布扣,bubuko.com

黑马程序员 内存管理之proterty,autorelease

标签:int   get   c   set   管理   a   

原文地址:http://www.cnblogs.com/wtbkof/p/3715627.html

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