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

OC-内存管理的一些要点

时间:2014-06-16 12:05:04      阅读:271      评论:0      收藏:0      [点我收藏+]

标签:内存管理

创建一个BOOK对象,对其属性进行声明 定义。

@property 属性声明 定义了对属性的赋值 

-(void) dealloc 方法在对象销毁的时候进行调用;


#import <Foundation/Foundation.h>

@interface Book : NSObject
@property (nonatomic,assign) int price;
@end


#import "Book.h"

@implementation Book

-(void)dealloc
{
    NSLog(@"Book is dealloc");
    [super dealloc];
}

@end


创建一个Person对象,对其属性进行声明 定义。

@property 属性声明 定义了对属性的计数加一并在-(void) dealloc 方法在对象销毁的时候减一;


#import <Foundation/Foundation.h> 
#import "Book.h"

@interface Person : NSObject

@property (nonatomic ,retain)Book *book; 

@end

#import "Person.h"

@implementation Person


-(void)dealloc
{
    [_book release];
    NSLog(@"Person is dealloc");
    [super dealloc];
}

@end


在main函数中,声明两个对象,并同时在使用完后进行销毁。遵循了谁创建谁销毁的原则。

#import <Foundation/Foundation.h>
#import "Person.h" 
#import "Book.h"

int main(int argc, const char * argv[])
{
    Person *p=[[Person alloc] init]; 
    
    Book *b=[[Book alloc] init];
    b.price=45;
    p.book=b;
    [b release];
    
    NSLog(@"%d ",p.book.price );
    
    
    [p release];

    return 0;
}

@property属性的参数分别为

assign,retain,copy-针对引用计数,assign为默认,并在非oc对象作为属性时使用

nonautomic,automic-在线程中起一定的作用,一般nonautomic效率会高点,默认是automic

readonly,readwrite-对属性进行setter getter存储,一般默认是readwrite


OC-内存管理的一些要点,布布扣,bubuko.com

OC-内存管理的一些要点

标签:内存管理

原文地址:http://blog.csdn.net/qq285016127/article/details/30137735

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