XCode не компилирует "Завершение приложения из-за необработанного исключения 'NSInternalInconsistencyException'" - PullRequest
1 голос
/ 19 марта 2012

У меня возникли серьезные проблемы при попытке сделать простое табличное представление в моем приложении для iOS. Я начал с немного более сложного исходного кода, но, отслеживая ошибку, я обнаружил, что это ошибка в методах источника данных контроллера табличного представления. Поэтому я сделал очень простое приложение с простым Nav Controller и Table View, и мне даже не удалось запустить его.

Вот как выглядит мой код:

AppDelegate.m

    #import "BIDAppDelegate.h"

    #import "BIDFirstLevelController.h"

    @implementation BIDAppDelegate

    @synthesize window = _window;
    @synthesize navController = _navController;

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
        // Override point for customization after application launch.
        BIDFirstLevelController *firstView = [[BIDFirstLevelController alloc] initWithStyle:UITableViewStylePlain];
        self.navController = [[UINavigationController alloc] initWithRootViewController:firstView];
        self.window.rootViewController = self.navController;
        [self.window makeKeyAndVisible];
        return YES;
    }

Вот метод, который вызывает проблемы. Чтобы проверить это, я просто хочу список, который отображает 3 ячейки с надписью «Hello».

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        static NSString *CellIdentifier = @"Cell";
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

        cell.textLabel.text = @"Hello";

        return cell;
    }

Xcode не отмечает ошибок перед компиляцией, но когда я пытаюсь это сделать, он показывает это в консоли и не компилирует мое приложение.

     Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'UITableView dataSource must return a cell from tableView:cellForRowAtIndexPath:'

Может кто-нибудь сказать мне, что с этим не так?

1 Ответ

1 голос
/ 19 марта 2012

Измените этот метод на

 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        static NSString *CellIdentifier = @"Cell";
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
        if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithFrame:CGRectMake(0, 0, 320, 44) reuseIdentifier:CellIdentifier];
        }
        cell.textLabel.text = @"Hello";
        return cell;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...