UITableView выбрасывает исключение
Я получаю следующую ошибку на очень простом 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 раздел... Я проверил это во вновь созданном 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;
}
Изменить 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;
}