此问题与this one有关,但更简单。 [我想我可能接近这些愚蠢问题的结尾,可以开始认真的事情:)。
我有一个retain
属性并设置为:
UINavigationController *thing = [[UINavigationController alloc] initWithRootViewController:one];
// thing's retain count is one
navController = thing;
// thing's retain count is still one!
[thing release];
// now retain count is zero, which is wrong
我无法理解为什么保留计数变为零。 navController
定义为
@property (nonatomic, retain) UINavigationController *navController;
该属性不应该将保留计数增加一个吗?
答案 0 :(得分:7)
问题是:您直接分配给属性的底层实例变量而不是调用setter。属性魔法不会以这种方式触发。尝试
self.navController = thing;
而是(剩下的代码不需要改变)。