我已经从许多 Apple 代码示例之一中实现了一些代码,但我遇到了一些麻烦,因为其中一个属性的保留属性似乎不起作用。这是属性声明:
@property (nonatomic, retain) EditingViewController *editingViewController;
这是代码:
- (EditingViewController *)editingViewController {
// Instantiate the editing view controller if necessary.
if (editingViewController == nil) {
EditingViewController *aController = [[EditingViewController alloc] init];
editingViewController = aController;
[aController release];
}
return editingViewController;
}
我了解 (retain) 应该导致保留计数在分配时增加 1;但是,除非我自己发送 [aController retain] 或不发送 [aController release],否则代码会失败。我在这里想念什么?