NSMutableArray没有填充TableView

时间:2013-11-22 02:41:36

标签: ios objective-c uitableview

您好我希望通过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

3 个答案:

答案 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来删除它.... 例如,

如果有多个删除额外的一个,请确保每个视图只有一个引用插座 enter image description here