我正在开发一个 iPad 应用程序来帮助我在国外管理我的开支。
我有一个带有经典主视图和详细视图的拆分视图。在主视图中有费用清单,在明细视图中,你猜怎么着?每一笔费用的细节!当我点击详细信息中的按钮时,使用带有表单的模态 segue 加载新视图。用户插入一个数字,如果该数字大于某个值,则主标签和明细标签的颜色将发生变化。当我保存这个数字时,我关闭模式视图并向主控发送一个 NSMessage,以便使用新标签颜色重新加载表格并重新加载之前选择的详细视图。一切都使用 iOS 模拟器,但是当我在我的 iPad (iPad 2) 上运行该应用程序时,一切都冻结了,我收到了这条消息:
2013-11-09 21:52:04.763 IOUinTravel[562:60b]-[NSConcreteMapTable backgroundView:willChangeToGraphicsQuality:]:无法识别的选择器发送到实例 0x18b8fb00 2013-11-09 21:52:04.767 IOUinTravel[562:60b] * 终止应用程序由于未捕获的异常“NSInvalidArgumentException”,原因:“-[NSConcreteMapTable 背景视图:willChangeToGraphicsQuality:]:无法识别的选择器发送到实例 0x18b8fb00”*First throw call stack: (0x2df5bf4b 0x387386af 0x2df5f8e7 0x2df5e1cb 0x2dead4d8 0x30c88b43 0x306cd7b5 0x306cd6e5 0x306cd7d5 0x306cd6e5 0x306da5c3 0x306da417 0x30785f67 0x30785d83 0x3077de85 0x3077d30d 0x3077d07d 0x3077d015 0x306ceda3 0x30355c6b 0x3035147b 0x3035130d 0x30350d1f 0x30350b2f 0x306c70c3 0x2df271cd 0x2df24b71 0x2df24eb3 0x2de8fc27 0x2de8fa0b 0x32b70283 0x30733049 0x9a3d5 0x38c40ab7) libc++abi.dylib: terminating with NSException (lldb) 类型的未捕获异常
我真的不知道为什么以及如何解决它。
我使用的方法是:
在表单模式视图中:
- (IBAction)saveNumber:(id)sender {
// Do some stuff here
[self dismissViewControllerAnimated:YES completion:^{ [[NSNotificationCenter defaultCenter] postNotificationName:@"reloadAfterExpenseCheck" object:self];}];
}
在主视图中:
- (void)reloadAfterExpenseCheck:(NSNotification *)notification
{
if ([[notification name] isEqualToString:@"reloadAfterExpenseCheck"]) {
NSLog(@"Messaggio ricevuto!");
NSLog(@"%@", self.indexPathToUpdate);
[self.tableView reloadData];
[self.tableView selectRowAtIndexPath:self.indexPathToUpdate animated:NO scrollPosition:UITableViewScrollPositionNone];
[self performSegueWithIdentifier:@"detailExpense" sender:self];
}
}
当我触发它在主表中选择一个单元格时,segue @"detailExpense" 起作用,所以我不知道问题出在哪里......在 iOS sim 中它起作用了!
谢谢您的回答。