首页 > 代码库 > iOS复习笔记5:内存管理之set方法
iOS复习笔记5:内存管理之set方法
1 alloc和release成对出现
2 set方法
2.1 基础类型直接赋值
2.2 OC对象:判断不等、retain新的,释放旧的,再赋值
3 dealloc方法
3.1 一定要调用[super dealloc];且放在最后
3.2 self拥有的对象要做一次release
2 set方法
2.1 基础类型直接赋值
2.2 OC对象:判断不等、retain新的,释放旧的,再赋值
3 dealloc方法
3.1 一定要调用[super dealloc];且放在最后
3.2 self拥有的对象要做一次release
@interface Book { int _price; } - (void)setPrice:(int)price; - (int)price; @end
@implementation Book - (void)setPrice:(int)price { _price = price; } - (int)price { return _price; } - (void)dealloc { [_book release]; _book = nil; [super dealloc]; } @end
@interface Person { Book* _book; } - (void)setBook:(Book*)book; - (Book*)book; @end
@implementation Person - (void)setBook:(Book*)book { // retain新的,release旧的,把新的赋给旧的 if (_book != book){ [book retain]; [_book release]; _book = book; } /* 可以简写为: if (_book != book){ [_book release]; _book = [book retain]; } */ } - (Book*)book { return _book; } @end
#import <Foundation/Foundation.h> int main() { Person* person = [[Person alloc] init]; Book* book = [[Book alloc] init]; [person setBook:book]; [book release]; book = nil; [person release]; return 0; }
iOS复习笔记5:内存管理之set方法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。