アプリを「iPhone 6.0 Simulator」で実行すると、この奇妙な動作が発生します。1 回目は正常に実行されますが、2 回目は次のエラーでクラッシュします。
loaded the "IouView" nib but the view outlet was not set.'
これは再現可能であり、1 回おきに動作し、その逆の場合はクラッシュします。ここに私のアプリの構造があります:
AppDelegate で:
self.iouViewController = [[IouViewController alloc] initWithNibName:@"IouView" bundle:nil];
[iouViewController setIouTableArray:iouTableArray];
navController = [[UINavigationController alloc] initWithRootViewController:self.iouViewController];
[window setRootViewController:navController];
次に、IouViewController.h で:
@property (strong, nonatomic) IBOutlet UITableView *iouTableView;
今日まで、私は常に自分のビュー (tableView など) をプログラムでコーディングしてきました。iPhone 5 の画面が 4 インチになったので、Apple と戦うのをやめて、「自動レイアウト」機能とともに IB を使用することにしました。
私の IouView.xib では、これは構造です。
Objects: 'View',
Referencing Outlets: view - File's Owner
Objects: 'View'->'Table View'
Outlets: dataSource - File's Owner
Outlets: delegate - File's Owner
Referencing Outlets: iouTableView - File's Owner
実際にはビュー内に別のテーブル ビューがありますが、ここには含めませんでした。進め方が分からないので助けてください!どうもありがとう。
ビューコントローラーを正しく初期化していない可能性があるため、「loadView」をコメントアウトして、これをinitとして使用します。
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
}
return self;
}
PS: Apple LLVM 4.1 と ARC を有効にした iOS 6 SDK でビルドしています。
更新: IB からの画像が追加されました:
まだ迷っていますが、さらにコードが必要な場合はお知らせください。シンプルなナビゲーション コントローラーを使用して新しいプロジェクトを作成しましたが、その新しいプロジェクトでは機能しますが、私のものでは機能しません。クラッシュはシミュレーターにあります。