Objective-C - NSTimer:无法识别的选择器发送到类 - 来自另一个类的调用方法

时间:2014-08-21 10:46:02

标签: objective-c selector nstimer

addCloudOne是Food类中的一个方法。以下代码生成崩溃,并出现以下错误:

+ [Food addCloudOne]:无法识别的选择器发送到类0x1000ad760

    SEL selector = @selector(addCloudOne);
    [NSTimer scheduledTimerWithTimeInterval:k1 target:[Food class] selector:selector userInfo:nil repeats:YES];

你有想法吗?

1 个答案:

答案 0 :(得分:0)

您需要指定Food类的实例,因此该参数不正确:

target:[Food class]

因此,您传递给NSTimer的是Class个对象,而不是Food个对象。

相反,您可能需要Food实例的实例变量并指定:

@interface MyClass ()
{
    Food *_food;
}

@implementation MyClass
...
- (void)whatever
{
    _food = [Food new];             // This might need to be elsewhere
    SEL selector = @selector(addCloudOne);
    [NSTimer scheduledTimerWithTimeInterval:k1
                                     target:_food
                                   selector:selector
                                   userInfo:nil
                                    repeats:YES];
}