Почему [obj selectorNotDefined] не вызывает предупреждение? - PullRequest
0 голосов
/ 25 июля 2010

Я хочу что-то вроде этого:

[myObject selectorNotDefined];

вызовет предупреждение. Есть ли возможность сделать это?

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

NSObject *myObject = [[NSObject alloc] init];
[myObject selectorNotDefined];

Компилятор не будет вызывать никаких предупреждений.

Если я создаю новый проект и добавляю эти строки, это вызывает предупреждение.

Что не так с моим существующим проектом?

Ответы [ 2 ]

1 голос
/ 25 июля 2010

Если вы напишите:

NSObject *myObject = [[NSObject alloc] init];
[myObject selectorNotDefined];

Вы обязательно получите предупреждение: myObject может не отвечать на селектор селектораNotDefined

Или вы можете проверить: i

f([myObject respondsTo:selector(selectorNotDefined)]{
 [myObject selectorNotDefined]; //or
[myObject performSelector:(selectorNotDefined) withObject:nil afterDelay:0];

}
0 голосов
/ 25 июля 2010

Это зависит от того, какой тип вы присвоили myObject. Если это тип id, вы не получите никаких предупреждений, но если вы сделаете его конкретным типом объекта, компилятор проверит, что метод объявлен в заголовочных файлах.

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