首页 > 代码库 > OC-内存管理的一些要点
OC-内存管理的一些要点
创建一个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
#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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。