Описание
Проблема в том, что компилятор видит более одного метода с именем tag
в текущей единице перевода, и эти объявления имеют разные типы возврата.Один из них, вероятно, будет -[UIView tag]
, что возвращает NSInteger
.Но также видно еще одно объявление tag
, возможно:
@interface MONDate
- (NSString *)tag;
@end
, тогда компилятор видит двусмысленность - это sender
a UIView
?или это MONDate
?
Компилятор предупреждает вас, что он должен угадать , что такое тип sender
.Это действительно требует неопределенного поведения.
Разрешение
Если вы знаете тип параметра, укажите его:
- (IBAction)shareThisActionSheet:(id)sender
{
UIView * senderView = sender;
int row = [senderView tag];
...
иначе, используйте что-нибудьнапример, условие isKindOfClass:
для определения типа, который объявляет переменную, как перед отправкой сообщения.как показывают другие ответы, вы также можете набрать.