myAppDelegate.m で:
MainViewController *mainViewController = [ [MainViewController alloc] init];
UINavigationController *navController = [[UINavigationController alloc]
initWithRootViewController:mainViewController];
[navController setNavigationBarHidden:YES];
[[self window] setRootViewController:navController];
MainViewController.m には特別なことはなく、ボタンに関連付けられたアクションは 1 つだけです。
- (IBAction)go:(id)sender {
if (!whereamiViewController)
{
whereamiViewController = [[WhereamiViewController alloc] init];
}
[[self navigationController] pushViewController:whereamiViewController animated:YES];
}
WhereamiViewController.m には、UINavigationViewController で別の画面を表示するためのボタンが 1 つだけあります。
-(IBAction)showList:(id)sender
{
PointsViewController *container = [[PointsViewController alloc] init];
[[self navigationController] pushViewController:container animated:YES];
}
と:
@interface PointsViewController : UITableViewController
@end
すべて順調です。しかし、最後の画面である PointsViewController に到達し、WhereamiView に戻ると、アプリがフリーズし、Xcode が CoureFoundation の CFHas にトラップを表示します。
さて、Objective-C が php ではないことはわかっていますが、これは実に単純な例です。何が欠けているのでしょうか? 問題をデバッグする方法はありますか?
デバッガーは次のように述べています。
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '- [__NSCFType _forgetDependentConstraint:]: unrecognized selector sent to instance
今朝、シミュレーター内でアプリを実行しましたが、クラッシュはありません!! それはどのように可能ですか?iPhone クラッシュ内で実行すると、シミュレーターではクラッシュしません。