У меня есть следующий код:performSelector причины утечки, потому что не правильный тип в Objective C
SEL moveAlongBoth = @selector(moveAlongX:andY:);
if ([p1 respondsToSelector:moveAlongBoth]) {
[p1 performSelector: moveAlongBoth
withObject: [NSNumber numberWithInt:1]
withObject: [NSNumber numberWithInt:1]];
}
Я получаю «performSelector может вызвать утечку» предупреждение. Но
[p1 moveAlongX:1 andY:1];
Работы просто отлично.
Я понимаю, что получаю сообщение об ошибке, потому что значения имеют значение (int) в реализации, и я использую NSNumber. Не изменяя реализацию, как бы я хотел объявить числовое значение int (если возможно)?
Это ошибка или предупреждение? –
Извините, предупреждение. Но результат неверен. –
Хорошо, тогда посмотрите на результат. Это предупреждение, потому что ARC не может «видеть» выше performSelector. –