Как я бросаю идентификатор к плаванию?

Для нескольких строк:

<htmltag>(.+)((\s)+(.+))+</htmltag>
16
задан 3 revs, 3 users 65%Benedict Cohen 22 November 2008 в 20:11
поделиться

3 ответа

Вы хотите [[item selectedHeight] floatValue], предполагая, что selectedHeight возвращается NSNumber.

37
ответ дан 30 November 2019 в 15:56
поделиться

Необходимо посмотреть на объявление Вашего selectedHeight метод. Проблема или что метод возвращает указатель на объект (идентификатор), или Вы не импортировали заголовочный файл для item в файле, который содержит фрагмент кода, таким образом, XCode предполагает, что это - указатель по умолчанию.

Вы не можете бросить указатель на плавание, так как они - существенно несовместимые типы. После того как Вы разгладили свои объявления, хотя необходимо быть хорошо.

1
ответ дан 30 November 2019 в 15:56
поделиться

Компилятор делает такие предположения, когда несколько классов объявляют методы с тем же именем, тот возврат различные типы. Так как Ваша переменная "объекта" вводится как "идентификатор", компилятор не знает, в какой из этих классов это будет отправлять сообщение во время выполнения и выбирает то.

Для предотвращения этой проблемы можно сообщить компилятору, какой класс "объект" является экземпляром путем объявления этого с определенным типом вместо универсального "идентификатора":

SomeItemClass *item;

Вы могли также избежать его, не объявив названный методами тот возврат различные типы.

1
ответ дан 30 November 2019 в 15:56
поделиться