这是我的问题:
在 viewDidLoad
方法中,我使用 NSUserDefaults
创建了一个变量(如果它是“第一次运行”,我创建它并用 NSNumber
填充它. 然后我尝试用另一种方法使用它......什么都没有。它看起来像空的。任何人都可以帮助我吗?非常感谢
- (void)viewDidLoad {
NSUserDefaults *defaults =[NSUserDefaults standardUserDefaults];
if ([defaults objectForKey:@"seriesBool"]!=nil)
{
seriesBool = [defaults objectForKey:@"seriesBool"];
}
else
{
int i;
seriesBool = [NSMutableArray arrayWithCapacity:9];
for(i=0; i<9; i++)
{
[seriesBool addObject:[NSNumber numberWithBool:YES]];
}
}
-(IBAction)toAction:(id)sender
{
NSLog(@"array: %@", seriesBool);
}
seriesBool 为空...
最佳答案
你必须像这样设置属性
@property(nonatomic,retain) NSMutableArray * seriesBool;
并使用它
self.seriesBool = [NSMutableArray arrayWithCapacity:9];
或
使用
seriesBool = [[NSMutableArray alloc] initWithCapacity:9];
代替
seriesBool = [NSMutableArray arrayWithCapacity:9];
& 你必须分配对象
seriesBool = [[NSMutableArray alloc] init];
seriesBool = [defaults objectForKey:@"seriesBool"];
关于iphone - ViewDidLoad 方法不保留变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11845763/