UITableView выбрасывает исключение - PullRequest
0 голосов
/ 04 июня 2010

Я получаю следующую ошибку на очень простом UITableView:

 *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIViewController tableView:numberOfRowsInSection:]: unrecognized selector sent to instance 0x5d73210'  

Вот мой код:

#pragma mark -
#pragma mark Table view data source

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    // Return the number of sections.
    return 0;
}


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    // Return the number of rows in the section.
    return 10;
}

Ответы [ 2 ]

1 голос
/ 04 июня 2010

Изменить 0 на 1

#pragma mark -
#pragma mark Table view data source

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    // Return the number of sections.
    return 1;
}


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    // Return the number of rows in the section.
    return 10;
}
1 голос
/ 04 июня 2010

Вы должны вернуть хотя бы 1 раздел ... Я проверял это во вновь созданном UIViewController XIB, называемом testes (добавьте новые файлы .h и .c и установите флажок для созданного XIB вместе с ним, а также для его создания UITableViewController подкласс), и он отлично работает.

Как вы создали таблицу? Вы создали свой собственный XIB, как я написал выше, или вы просто добавили табличное представление в файл MainWindow.xib? Попробуйте создать себя, и вы должны быть хорошими. Просто убедитесь, что в AppDelegate установлено главное представление, которое добавляется в didFinishLaunchingWithOptions для нового создаваемого вами табличного представления. В IB UIViewController для табличного представления должен быть установлен в подкласс testes (который является подклассом UITableViewController)

Файлы делегатов приложения

#import <UIKit/UIKit.h>

@class testes;

@interface testesAppDelegate : NSObject <UIApplicationDelegate> {
    UIWindow *window;
    testes *viewController;
}

@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet testes *viewController;

@end

и

#import "testesAppDelegate.h"
#import "testes.h"

@implementation testesAppDelegate

@synthesize window;
@synthesize viewController;


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    

    // Override point for customization after app launch    
    [window addSubview:viewController.view];
    [window makeKeyAndVisible];

return YES;
}

А затем в файле viewcontroller .m

#pragma mark Table view methods

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return 10;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...