每当我将我的应用程序运行到“iPhone 6.0 模拟器”中时,我都会遇到这种奇怪的行为。第一次,它会成功运行,但第二次,它会因错误而崩溃:
loaded the "IouView" nib but the view outlet was not set.'
这是可重现的,每隔一段时间,它就会起作用,反之亦然,它会崩溃。这是我的应用程序结构:
在 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:我在 iOS 6 SDK 上构建,启用了 Apple LLVM 4.1 和 ARC。
更新:来自 IB 的图片添加:
仍然迷路,如果您需要更多代码,请告诉我。我用一个简单的导航控制器创建了一个新项目,它适用于那个新项目,但不适用于我的。崩溃与模拟器有关。