安装了Xcode 7.1 Beta并在iOS 9.0上测试了我的应用程序并得到以下错误。我在这里提出了不同的问题。
我正在使用IIViewDeckController进行左侧菜单和PullRefreshTableViewController。在app委托中,我注册到不同的通知并给出webservice调用来获取VC1(Menu1)和VC2(Menu2)的视图控制器的数据,两者都继承了PullRefreshTableViewController。首先显示VC1。当用户导航到VC2时,视图会被拉入数据但会因以下异常而崩溃。
***由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'类UIView的实例0x7fa8c541eaf0已取消分配,而键值观察者仍在其中注册。目前的观察资料:( 上下文:0x0,属性:0x7fa8c1d1b470> )'
***第一次抛出调用堆栈: (
$?
)
libc ++ abi.dylib:以NSException类型的未捕获异常终止
**注意:**相同的代码可在iPad上正常运行
答案 0 :(得分:0)
- (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;
}
OR https://github.com/edgecase/ECSlidingViewController
以防万一无法解决问题。
答案 1 :(得分:0)
如果你的桌子被重新加载,你可能会失去你的观点,我的意思是,他们被解除分配。如果有某些连接beetwen deallocated视图和值某处导致崩溃。您需要在解除分配之前停止观察值以避免崩溃。检查这个场景。
答案 2 :(得分:0)
这对我有用。 问题在于推动对IIViewDeckController的查看。
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
UINavigationController *centerController = [[UINavigationController alloc] initWithRootViewController:appDelegate.viewController];
[appDelegate.viewDeckController closeLeftViewBouncing:^(IIViewDeckController *controller)
{
appDelegate.viewDeckController.centerController = centerController;
}];
谢谢你的输入人员。 :)