我有一个变量lastPostsGrabbedCounter
,NSNumber
,定义如下。
.h
NSNumber *lastPostsGrabbedCounter;
@property (nonatomic, retain) NSNumber *lastPostsGrabbedCounter;
.m
@synthesize postDetailViewController, lastPostsGrabbedCounter;
- (void)viewWillAppear:(BOOL)animated {
self.lastKnownLocation = [[CLLocation alloc] init];
self.lastPostsGrabbedCounter = [[NSNumber alloc] initWithInt:25];
[self showActivityViewer];
}
这个.m文件是我主视图中的表控制器。加载应用程序时会调用此viewWillAppear
,但如果我导航到另一个TAB并返回并尝试使用lastPostsGrabbedCounter
var,我会将其显示为nil?
当我离开时为什么不保留?
答案 0 :(得分:4)
如果没有保留NSNumber,那么您的应用程序(很可能)会崩溃,或者至少表现不佳。您看到nil
表示发生了非常不同的问题。
检查以确保您不会在其他代码路径上将其缩小。此外,请确保您回到您认为自己的实例。在整个方法中传播的少量NSLog(@"%@ %p", [self class], self]);
非常有用。
正如安德烈所说,你正在泄露数字;过度保留它。