我想在xcode中向page-based
项目添加新页面,DataViewController
占据整个屏幕,因此我无法在RootVC
上添加任何按钮。因此,当我在IBAction
上添加DataVC
时,会发生崩溃,我不明白为什么,例外只是说
线程1,断点1.1
以下是代码:
//in DataVC, not sure if it is ok to create the DataVC inside itself
- (IBAction)addOne:(id)sender {
DataViewController *dvc = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"DataViewController"];
[[ModelController sharedModelController] addOneToModel:dvc];
}
//in ModelController
-(void) addOneToModel:(DataViewController*)dvc{
[self.pageData addObject:dvc];//ERROR HERE: not much details : "thread 1, breakpoint 1.1"
}
//the sharedMOdelController
+(instancetype)sharedModelController{
static dispatch_once_t once;
static ModelController *sharedInstance;
dispatch_once(&once, ^{
sharedInstance = [[ModelController alloc] init];
});
return sharedInstance;
}
答案 0 :(得分:0)
你将不得不做更多的侦探工作。记录新创建的DataViewController以确保它不是nil,并且是您认为的那种对象。
您也可能在该行有一个断点而无法看到它。 Xcode IDE和调试器命令行维护单独的断点列表,我看到断点从IDE中消失但仍显示在调试器命令行中。你试过继续吗?
您可能还想禁用所有断点,看看会发生什么。
您可能还想尝试为所有Objective-C异常添加异常断点。有时,当发生异常时,它会提供更多信息。