创建一个BOOK对象,对其属性进行声明 定义。
@property 属性声明 定义了对属性的赋值
-(void) dealloc 方法在对象销毁的时候进行调用。
#import@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#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#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