Ниже представлен простой PerformSelector, который отправляет сообщение obj для выполнения метода циклирования. Все работает хорошо, но я получаю следующее желтое предупреждение.Почему предупреждение с моим исполнениемВыбор
PerformSelector может вызвать утечку, поскольку его селектор неизвестен.
#import "MyClass.h"
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
@autoreleasepool {
MyClass *obj = [[MyClass alloc]init];
SEL mySel = @selector(looping);
[obj performSelector:mySel];
}
return 0;
}
Это предупреждение не имеет смысла, потому что performSelector должна быть осведомлена о mySel, так как методы перекручивания делают дозвонились - любые идеи, что происходят ??
Обновление
MyClass.h
#import <Foundation/Foundation.h>
@interface MyClass : NSObject
-(void)looping;
@end
MyClass.m
#import "MyClass.h"
@implementation MyClass
-(void)looping{
NSLog(@"Hey, i'm looping");
}
@end
Спасибо вам за помощь, но как NEWB Im все еще немного запутался. Если бы вы могли объяснить или даже лучше отправить пример того, что вы имеете в виду, не объявляя текущий перевод.Метод looping находится в интерфейсе и не требует двоеточия, потому что он не принимает никаких аргументов (он просто выводит строку). – pete
@pete благодарит за расширение вашего сообщения. Я обновил его с реальным ответом. – justin
, что объясняет это, и да, у меня включен ARC. Спасибо – pete