Как избежать ошибки «Не удается преобразовать UIButtonType в UIBarButtonItemStyle при передаче аргумента?» - PullRequest
0 голосов
/ 09 января 2011

Я включаю zxing (сканирование QR-кода) в свой проект iPhone.Я следовал инструкциям, чтобы заставить его работать, включая переименование файла класса из .m в .mm.

Когда я делаю это, мой проект не может скомпилироваться с ошибкой: «не удается преобразовать« UIButtonType »в« UIBarButtonItemStyle »при передаче аргумента», что происходит в следующем коде в моем классе (добавление кнопки, позволяющей пользователючтобы вызвать операцию сканирования)

// Add scan button
UIBarButtonItem *qrScanButton = [[UIBarButtonItem alloc] initWithTitle:@"Scan" 
    style: UIButtonTypeInfoLight 
    target:self action:@selector(qrScanButtonPressed)]; 
    [[self navigationItem] setLeftBarButtonItem: qrScanButton];
    [qrScanButton release];

Из ошибки видно, что проблема связана со стилем

: UIButtonTypeInfoLight

Если я закомментируювесь блок, то код компилируется нормально.Он перестает работать, когда тип файла становится .mm.Это довольно стандартный блок кода для добавления альтернативных кнопок «назад» и т. Д.

Если у кого-то есть идеи, как решить, я был бы очень признателен.

1 Ответ

3 голосов
/ 09 января 2011

Проблема в том, что «UIButtonTypeInfoLight» не является допустимым UIBarButtonItemStyle . (Найдите константы UIBarButtonItemStyle внизу вышеуказанной ссылки.)

Действительные значения в настоящее время (iOS 4.2):

  • UIBarButtonItemStylePlain
  • UIBarButtonItemStyleBordered
  • UIBarButtonItemStyleDone

Вы передаете UIButtonTypeInfoLight, который является UIButtonType и не имеет смысла в области действия UIBarButtonItem.

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