我的应用程序使用 ARC,但我遇到了一些不使用它的第三方软件的麻烦。我可以通过在构建阶段设置 -fno-objc-arc 来克服这个问题。但是,我遇到了一个问题,即一个 ViewController 使 pp 崩溃,因为它被调用了两次。
我会试着解释...
在我自己的 TableView 中,我选择了一条带上 Urban Airship 的 StoreFront 的行。据我所知,它以模态窗口的形式出现。这是一个直接指向我在 TableView 中选择的项目的 DetailView 的 TableView。我购买了该项目并开始下载。我有一个来自 Urban Airship 的代表,它在我的 TableView 中告诉我该项目何时安全地挂在电话上。我 [selfdismissModalViewControllerAnimated:YES]; 在我自己的 TableView 中该委托末尾的 UAStore 并取回我的 TableView。
一切正常。
当我选择要购买的新产品时会出现问题。我一直到 UA DetailView,但是一旦我点击“购买”按钮,应用程序就会崩溃。
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Pushing the same view controller instance more than once is not supported (<UAProductDetailViewController: 0x3a35e0>)'
在我看来,UAProductDetailViewController 似乎没有发布。Urban Airship 的实现文件位于库中,因此无法对其进行调整。为了离开这里,我尝试了很多不同的方法。
[[DataModel sharedModel] saveContext];
[[self tableView] reloadData];
// LessonListViewController *lessonListVC = [[LessonListViewController alloc] initWithNibName:@"LessonListView" bundle:nil];
UserData *UserData_Array = [dm.UserData_Array objectAtIndex:0];
// lessonListVC.courseID = UserData_Array.current_levelName;
// lessonListVC.lessonsArray = UserData_Array.current_level;
NSLog(@"Current level name:%@",UserData_Array.current_levelName);
NSLog(@"Lessons array:%@",UserData_Array.current_level);
// lessonListVC.navigationItem.hidesBackButton = YES;
// [self.navigationController popToViewController:lessonListVC animated:YES];
// [UAProductDetailViewController removeFromParentViewController];
self.tabBarController.tabBar.hidden = NO;
[self dismissModalViewControllerAnimated:YES];
但到目前为止没有任何效果。希望有人可以按照我有点混淆的描述并节省头发。
* *当我回到自己的 TableView 时,不会调用 UADetailViews 的 viewDidUnload 中的 NSLog 调用。