我正在使用iPhone SDK 3.0,但我认为这是一个普遍误解的事情如何工作W/C &内存管理。指针内存管理误解w/objective-c
我已经覆盖了viewWillAppear中方法类似这样的
@implementation MyViewController
- (void)viewWillAppear:(BOOL)animated {
NSArray *items = [NSArray arrayWithOjbects:self.searchButton, self.trashCan, nil];
[self.bottomBar setItems:items animated:YES];
}
// other stuff...
@end
,当我尝试切换从上面的视图控制器路程,切换回一切正常。
但是,我的倾向是“释放”原来的指针“项目”,因为我认为引用NSArray现在由bottomBar举行。 但是,当我这样做(见下面的代码),并试图切换离开UIViewController,我得到一个内存管理错误( - [CFArray计数]:消息发送到释放实例0xd5f530)。
- (void)viewWillAppear:(BOOL)animated {
NSArray *items = [NSArray arrayWithOjbects:self.searchButton, self.trashCan, nil];
[self.bottomBar setItems:items animated:YES];
[items release];
}
我需要不发布项目在这种情况下?或者我做错了什么? 显然,经验证据表明我不应该发布“项目”,但我不清楚为什么会出现这种情况。
感谢您的任何信息/“指针”!
谢谢大家!并感谢您的链接。 – user141146 2009-07-25 18:53:32