我经常在多个地方收到EXC_BAD_ACCESS错误,但总是在下面的nsuserdefaults上是它一直出错的地方。
//Get results
NSString *currentYes = [[NSUserDefaults standardUserDefaults] stringForKey:@"yes"];
NSString *currentNo = [[NSUserDefaults standardUserDefaults] stringForKey:@"no"];
再来一次:
- (IBAction)VoteQ1:(id)sender
{
//Save question 1 to device
[[NSUserDefaults standardUserDefaults] setObject:@"Q1" forKey:@"questionnumber"];
[[NSUserDefaults standardUserDefaults] setObject:[self.Question1 objectAtIndex:0] forKey:@"Question"];
[[NSUserDefaults standardUserDefaults] setObject:[self.Question1 objectAtIndex:1] forKey:@"yes"];
[[NSUserDefaults standardUserDefaults] setObject:[self.Question1 objectAtIndex:2]forKey:@"no"];
[[NSUserDefaults standardUserDefaults] setObject:[self.Question1 objectAtIndex:3] forKey:@"start"];
[[NSUserDefaults standardUserDefaults] setObject:[self.Question1 objectAtIndex:4] forKey:@"end"];
[[NSUserDefaults standardUserDefaults] synchronize];
FlipViewController *controller = [[FlipViewController alloc] initWithNibName:@"FlipView" bundle:nil];
controller.delegate = self;
controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:controller animated:YES];
[controller release];
}
我也有(IBAction)VoteQ2:(id)sender
和(IBAction)VoteQ3:(id)sender
与上面相同,但self.question1就像问题2或3。
单击并完成翻转视图后,单击另一个ibaction时会出现错误。
请帮助我相信它与nsuserdefaults没有自我发布有关
由于
答案 0 :(得分:0)
这些事情通常是由于使用指向过期对象的指针。您可以在启用僵尸的情况下运行以帮助隔离。
查看堆栈后退轨道以隔离其发生的行并报告回来。
答案 1 :(得分:0)
我猜你NSArray对象,self.Question1,是超出界限的。 即self.Question1中只有2个对象,但你试图获得objectAtIndex 4。
答案 2 :(得分:0)
这可能是一个铸造问题。您正在设置对象
setObject:[self.Question1 objectAtIndex:1]
但是将其提取到NSString:
stringForKey:@"yes"
假设 Question1数组中的对象是NSString对象,请尝试:
NSString *currentYes = (NSString *)[[NSUserDefaults standardUserDefaults] objectForKey:@"yes"];