您好我希望通过this tutorial来学习如何重新创建我最喜欢的应用程序之一:RealMac软件清除应用程序。
但我一开始就陷入困境。在第一部分之后,甚至在对行进行样式化之前,tableView不会被initWithNibName中的NSMutableArray填充。
我的所有代码都完全相同,但是当我运行它时,我收到此错误:
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: 'NSBundle </var/mobile/Applications/DD956F2E-26A7-4357-BCD7-DC0C42939861/Clear App Tutorial.app> (loaded)' with name 'UIViewController''
代码中是否有任何可能缺少的内容,与编写教程和使用Xcode 5时的版本有何不同?
我需要在viewDidLoad方法中“释放”或“addToSubView”_toDoListItems数组吗?
对不起,我是Objective-C的新手,到目前为止,这对我来说是一件非常头疼的事。 : - /
这是在我的AppDelegate.m中:
#import "AppDelegate.h"
#import "ViewController.h"
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions: (NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
return YES;
}
....etc. and @end
这是在我的AppDelegate.h中:
#import <UIKit/UIKit.h>
@class ViewController;
@interface AppDelegate : UIResponder
@property (strong, nonatomic) UIWindow *window;
@property (strong, nonatomic) ViewController *viewController;
@end
答案 0 :(得分:1)
在没有看到任何代码的情况下,我将假设您在appDelegate中执行此操作:
[[SHCViewController alloc] initWithNibName:@"UIViewController" bundle:nil];
你应该在哪里这样做:
[[SHCViewController alloc] initWithNibName:@"SHCViewController" bundle:nil];
答案 1 :(得分:1)
很难说出确切的原因,但我可以看到你的app委托继承自UIResponder,它不需要做任何事情来显示UIWindow(没有initWithNibName,也没有调用makeKeyAndVisible)。
您需要确保: 1. didFinishLaunchingWithOptions:方法只需要返回YES。 2.在故事板上,对于ViewController,在属性检查器中检查“是初始视图控制器”(以便它在启动应用程序后显示为第一个屏幕)。
这可能会解决问题。让我知道它是否有效。
其他可能的原因可能是(如异常名称所示)文件引用中的任何不一致,请尝试删除所有文件并再次添加它们。
答案 2 :(得分:1)
好的,这是UI的常见问题,检查您是否为同一个UIElement(按钮,tableview等)创建了两个出口...通过右键单击UIElement来删除它.... 例如,
如果有多个删除额外的一个,请确保每个视图只有一个引用插座