Я пытаюсь использовать пользовательские UITableViewCells, определенные в IB, где есть ссылки на выходы. Я успешно использовал методы, показанные в нескольких местах в stackoverflow, для загрузки и использования UITableViewClass, когда нет ссылки на выход, как показано ниже.
NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"TheCellsClass" owner:nil options:nil];
У меня есть отдельный файл с именем «TheCellsClass.xib», в котором есть один UITableViewCell, определенный с одним UILable с именем Alabel, «IBOutlet UILabel * Alabel;». Если я подключу метку к ALabel, то получу эту ошибку
Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<NSObject 0x681b360> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key Alabel.'
После поиска здесь и в Интернете я понимаю, что это связано с тем, что "owner: nil" не определяет класс с этим объектом: Alabel. Я не могу использовать «owner: self», потому что это UITableViewController, а также не определяет «Alabel».
Я создал класс с именем «TheCellsClass» как подкласс «UITableViewCell», который определяет Alabel, см. Ниже;
Тогда использовали:
NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"TheCellsClass" owner:cell options:nil];
Я все еще получаю ту же ошибку. Итак, кто-нибудь может указать на ошибку моих путей? :-)
Единственный способ решить эту проблему - удалить все ссылки и подключить
их используя код
Заголовок подкласса:
#import <UIKit/UIKit.h>
@interface TheCellsClass : UITableViewCell {
IBOutlet UILabel *Alabel;
}
@property (strong, nonatomic) UILabel *Alabel;
@end
Тело подкласса:
#import "TheCellsClass.h"
@implementation TheCellsClass
@synthesize Alabel;
@end
В табличном представлении контроллер
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
Я использую:
TheCellsClass* cell= [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
if (cell == nil) {
NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"TheCellsClass" owner:cell options:nil];
Здесь находится образец проекта http://www.proaa.com/tryout.zip
Предложения? Запросы на дополнительную информацию?
Любая помощь приветствуется.
Geoff