Я получаю это предупреждение от раскадровки - ячейки таблицы прототипа должны иметь идентификаторы повторного использования.
Я переименовал идентификатор в инспекторе атрибутов, но он, похоже, не удалил предупреждение.
Любые предложения?
Я получаю это предупреждение от раскадровки - ячейки таблицы прототипа должны иметь идентификаторы повторного использования.
Я переименовал идентификатор в инспекторе атрибутов, но он, похоже, не удалил предупреждение.
Любые предложения?
Чтобы закрыть предупреждение, вы должны указать имя идентификатора ячейки:
Другой способ заключается в том, чтобы установить свойство "Prototype Cells" в представлении таблицы "Ноль" в "Инспекторе атрибутов", если вы определяете ячейку с помощью .xib программно.
Поскольку раскадровка на самом деле является XML файлом, поэтому еще один трюк - открыть раскадровку любым текстовым редактором (а не Xcode!) и попытаться найти все узлы tableViewCell. Например, нажмите CMD + F, введите <tableViewCell contentMode="scaleToFill"
и нажмите Enter. Вы, вероятно, узнаете, строки, похожие на этот:
<tableViewCell contentMode="scaleToFill" selectionStyle="blue" accessoryType="disclosureIndicator" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="GenericCellID" id="kBr-Qn-Tki">
Обратите внимание на значение ключа reuseIdentifier="GenericCellID"
.
Строки, которые запускают предупреждение (без идентификаторов повторного использования), не будут иметь такого значения ключа. Посмотрите узлы выше в текстовом редакторе, и вы увидите tableViewController
node с именем класса, который вам нужно проверить в редакторе раскадровки Xcode и исправить в соответствии с ответом aleroot.
Так как двойной щелчок на этом предупреждении может привести к чересчур дикой гусиной погоне (конкретный UITableViewCell не будет выбран), просто нужно добавить, что, хотя некоторые из этих предупреждений будут автоматически разрешены, некоторые будут не.
Если вы уверены, что отметили все свои ячейки в Storyboard, перестройте проект - ваше предупреждение может исчезнуть (как и мое).
Если ваше предупреждение Xcode по-прежнему не исчезает даже после того, как вы установили идентификатор повторного использования, попробуйте меню "Продукт → Очистить". Это помогло мне, и после этого предупреждение больше не появлялось.
Я заметил, что эта ошибка возникает, когда у вас несколько ячеек прототипа (в свойствах tableview) и не дали им повторного использования идентификаторов.
Идентификатор - это имя, которое вы называете в файле .m. Когда он не заполнен, ссылка на ячейку невозможна.
Это для установки идентификатора повторного использования программным способом
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath (NSIndexPath*)indexPath
{
static NSString *cellIdentifier = @"wot";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier forIndexPath:indexPath];
if (!cell)
cell = [[UITableViewCell alloc] initWithStyle: someStyle reuseIdentifier: cellIdentifier];
return cell;
}
Я получил это предупреждение для Xcode 7. Я работаю с Swift. Я не добавил контроллер навигации для контроллера начального представления. Когда я это сделал, я получил это предупреждение от StoryBoard. Я сделал это:
Предупреждение идет.. если не очистить sdk:)
Убедитесь, что вы устанавливаете Идентификатор повторного использования на объект, а не Идентификатор восстановления. Оба доступны через раскадровку и легко путаются.
В XML файле раскадровки вы хотите установить reuseIdentifier
, а не restorationIdentifier
.
Град Мэри: перезапуск XCode работал у меня (но это был, вероятно, просто ручной передел, который требовался).