#iphone #objective-c #cocoa-touch
#iPhone #objective-c #cocoa-touch
Вопрос:
У меня есть UITableViewCell, определенный в XIB (с настройкой розеток), и пользовательский класс, установленный в ‘CustomTableViewCell’. Сейчас я ищу подкласс ‘CustomTableViewCell’ с ‘SubclassCustomTableViewCell’, однако я хотел бы использовать тот же XIB (и не нужно переопределять мой вид. Возможно ли это? В настоящее время у меня есть:
(SubclassCustomTableViewCell *)create
{
// Create undefined cell.
id cell = nil;
// Iterate over NIB and find a matching class.
NSBundle *bundle = [NSBundle mainBundle];
NSArray *cells = [bundle loadNibNamed:@"CustomTableViewCell" owner:nil options:nil];
for (cell in cells) if ([cell isKindOfClass:[self class]]) break;
// Return cell.
return cell;
}
Но я не могу понять, как заставить его возвращать что-либо, кроме родительского.
Ответ №1:
(SubclassCustomTableViewCell *)create
{
// Create undefined cell.
id cell = nil;
// Iterate over NIB and find a matching class.
NSBundle *bundle = [NSBundle mainBundle];
NSArray *cells = [bundle loadNibNamed:@"CustomTableViewCell" owner:nil options:nil];
for (cell in cells) if ([cell isKindOfClass:[self class]]) return cell; //change this
// Return cell.
return nil; //change this
}
не могли бы вы сказать мне, где (SubclassCustomTableViewCell *)create
определено, в каком классе
Комментарии:
1. Оно определено в подклассе. Я не уверен, как изменение вызова на потенциально возвращающий nil должно помочь… Я действительно хочу, чтобы он возвращал ячейку табличного представления…
2. да, это не поможет .. но это вернет либо пользовательскую ячейку, либо nil … это не вернет родительскую ячейку. Я добавил
return cell;
в цикл for. и, пожалуйста, поместите все классы ur3. Но в файле XIB родительская ячейка задана в качестве класса. Если это выполняется в дочернем устройстве, оно никогда ничего не вернет…