Ошибка условия точки останова XCode

У меня есть это условие точки останова:

[string isEqualToString:@"dummy"]

, но я всегда получаю эту ошибку в консоли:

ошибка: нет известного метода '-isEqualToString:'; отправить сообщение в тип возвращаемого значения метода

Что я делаю не так?

Версия XCode — 4.4.1, отладчик — LLDB.


person Bogdan    schedule 23.08.2012    source источник
comment
можете ли вы добавить больше кода .. чтобы было понятнее   -  person Vimal Venugopalan    schedule 23.08.2012
comment
Является ли string именем вашей переменной?   -  person Black Frog    schedule 23.08.2012


Ответы (3)


Сегодня я попробовал условную точку разрыва и нашел ответ. Приведение возвращаемого значения к BOOL в вашем условии исправит это:

    (BOOL)[string isEqualToString:@"dummy"]

(Эта ошибка будет вызвана, даже если string является NSString.)

person littlebtc    schedule 28.08.2012
comment
Правильно, вам нужно включить тип возвращаемого значения. Apple документирует это, но это легко пропустить: точка останова срабатывает только в том случае, если условие истинно (например, i == 24). Вы можете использовать любые переменные, которые находятся в текущей области для этой точки останова. Вы должны привести вызовы функций к соответствующему возвращаемому типу. Этот последний бит применим и к вызовам методов. Из Руководства пользователя Xcode. - person Mason; 21.01.2013
comment
Хотя это решение работает, возможно, я что-то упускаю (возможно, поскольку я новичок в разработке IOS), но это кажется немного нелогичным, учитывая, что NSString.isEqualToString() все равно возвращает (BOOL), согласно NSString. h заголовочный файл (???). - person Big Rich; 16.12.2015

Пожалуйста, убедитесь, что "string" является объектом типа NSString!

person Pandey_Laxman    schedule 23.08.2012

Я думаю, что ваша «строка» представляет собой символ, число или тип URL-адреса. "строка" должна быть типа NSString.

person Vishal    schedule 24.08.2012