Не могу скомпилировать соединение iOS5 - PullRequest
0 голосов
/ 14 марта 2012

В приложении, над которым я работаю для iPhone, оно решило не компилировать меня, когда я прошу его дать мне ярлык на ячейке прототипа таблицы. Раньше я получал розетки для меток, но я использовал либо стандартный вид, либо статические ячейки, а не прототип. Я думаю, что это, вероятно, связано с тем фактом, что метка принадлежит ячейке-прототипу и будет продублирована, поскольку все они имеют один и тот же идентификатор (ячейка), но, опять же, я могу быть отключен. Я не уверен, что делать с этим, если я использую только cell.textLabel.text, то моя кнопка загрузки не появляется, пока я не нажму на ячейку.

Ошибка:

Couldn't compile connection: <IBCocoaTouchOutletConnection:0x4007cd200  <IBProxyObject: 0x4007de280> => lblServerName2 => <IBUILabel: 0x4009b7d00>>

Есть ли у кого-нибудь какие-либо предложения относительно того, как я могу настроить текст на пользовательской метке внутри ячейки?

Для справки, я загрузил свой проект здесь . В настоящее время это беспорядок, но в настоящее время это просто доказательство концептуальных вещей. Я собираюсь пройти и сделать уборку, как только у меня получится.

Любые предложения приветствуются.

EDIT:

Эта страница помогла. Я нашел это почти сразу после публикации этого вопроса. По сути, я установил для тега метки значение 100, а затем использовал этот код внутри метода cellForRowAtIndexPath.

UILabel *lblServerName = (UILabel*)[cell viewWithTag:100];
lblServerName.text=[server getName];

и вот оно, мой ярлык работает правильно и моя кнопка появляется.

Ответы [ 2 ]

3 голосов
/ 14 марта 2012

Чтобы изменить текст в метке произвольного UITableViewCell, назначьте метку метке, а затем в коде сделайте что-то вроде следующего:

UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathWithIndex:2]];
if (cell != nil) {
    // This assumes that you set the tag to 1 on the label
    UILabel *label = (UILabel *)[cell viewWithTag:1];
    label.text = @"New Text";
}
1 голос
/ 13 апреля 2012

Этот вопрос предоставляет более вероятное объяснение этого сообщения об ошибке.

Как показано в сеансе 309 WWDC 2011, ячейки-прототипы могут иметь розетки, подключенные к пользовательскому подклассу ячейки. Нет необходимости использовать tag, чтобы найти метку и присвоить ей значение позже.

Что, вероятно, произошло в вашем проекте (я не смотрел на него), так это то, что у вас была ссылка из вашей ячейки-прототипа на другой объект в вашей раскадровке. Это недопустимо, поскольку прототип ячейки не является реальной ячейкой Их может быть ноль или тысяча. Удалите направленное наружу соединение, и ошибка исчезнет.

(В моем случае я подключил переход от прототипа к другому контроллеру представления, думая, что касание его приведет к переходу к этому контроллеру.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...