Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS-由于未捕获异常“NSInternalInconsistencyException”而终止应用程序_Ios_Objective C_Uitableview - Fatal编程技术网

iOS-由于未捕获异常“NSInternalInconsistencyException”而终止应用程序

iOS-由于未捕获异常“NSInternalInconsistencyException”而终止应用程序,ios,objective-c,uitableview,Ios,Objective C,Uitableview,安装了Xcode 7.1测试版,并在iOS 9.0上测试了我的应用程序,发现以下错误。我在这里详细讨论了不同的问题 我使用IIViewDeckController作为左菜单和PullRefreshTableViewController。应用内委托我注册到不同的通知,并发出webservice调用以获取VC1Menu1和VC2Menu2的视图控制器的数据,这两个控制器都继承了PullRefreshTableViewController。首先显示VC1。当用户导航到VC2时,视图会加载拉取的数据,但

安装了Xcode 7.1测试版,并在iOS 9.0上测试了我的应用程序,发现以下错误。我在这里详细讨论了不同的问题

我使用IIViewDeckController作为左菜单和PullRefreshTableViewController。应用内委托我注册到不同的通知,并发出webservice调用以获取VC1Menu1和VC2Menu2的视图控制器的数据,这两个控制器都继承了PullRefreshTableViewController。首先显示VC1。当用户导航到VC2时,视图会加载拉取的数据,但会崩溃,出现以下异常

***由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因是:“UIView类的实例0x7fa8c541eaf0已解除分配,而键值观察员仍在向其注册。当前观测信息: 上下文:0x0,属性:0x7fa8c1d1b470> "

***第一次抛出调用堆栈:

libc++abi.dylib:以NSException类型的未捕获异常终止

**注:**相同的代码在iPad上正常工作,没有错误

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

    UIStoryboard* mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle: nil];
    UIViewController* menuController = [mainStoryboard instantiateViewControllerWithIdentifier:@"LeftSideMenu"];

    UINavigationController* navigationController = (UINavigationController *) self.window.rootViewController;
    self.viewDeckController =  [[IIViewDeckController alloc] initWithCenterViewController:navigationController leftViewController:menuController rightViewController:nil];
    self.window.rootViewController = self.viewDeckController;
}


以防无法解决问题

如果您的表被重新加载,您可能会丢失视图,我的意思是,它们被释放。如果在某个位置存在一些连接,则会导致崩溃。您需要在解除分配之前停止观察值,以避免崩溃。检查一下这个场景。

这对我很有效。 问题在于将视图推到IIViewDeck控制器上时

AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];

UINavigationController *centerController = [[UINavigationController alloc] initWithRootViewController:appDelegate.viewController];
[appDelegate.viewDeckController closeLeftViewBouncing:^(IIViewDeckController *controller)
 {
     appDelegate.viewDeckController.centerController = centerController;
 }];

谢谢你们的意见

您是否在该类中注册了任何KVO,并且在对象解除分配之前删除了这些KVO?没有。我没有注册过任何KVO.iOS 9.1。相同的代码适用于iPad,但不适用于iPhone。我没有使用情节提要:。但根控制器的设置类似。
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];

UINavigationController *centerController = [[UINavigationController alloc] initWithRootViewController:appDelegate.viewController];
[appDelegate.viewDeckController closeLeftViewBouncing:^(IIViewDeckController *controller)
 {
     appDelegate.viewDeckController.centerController = centerController;
 }];