0

在某些设备上,由于以下错误,我的应用程序崩溃: NSInvalidArgumentException: -[OS_dispatch_data notifyDelegateOnWillFinish]: unrecognized selector sent to instance 0x2082d7a0

我无法重现此行为。我使用 Flurry 分析跟踪崩溃,一些用户似乎遇到了这个问题。

我试图用谷歌搜索这个错误,但没有成功。所以希望这里有人知道这意味着什么。

非常感谢!!

编辑:我的代码中我使用调度的唯一部分是这个

- (void) callDelegateOnMainThread: (SEL) selector withArg: (id) arg error: (NSError*) err
{
    dispatch_async(dispatch_get_main_queue(), ^(void)
               {
                   [self callDelegate: selector withArg: arg error: err];
               });
}

EDIT2:这里是 callDelegate 方法:

- (void) callDelegate: (SEL) selector withArg: (id) arg error: (NSError*) err
{
    assert([NSThread isMainThread]);
    if([delegate respondsToSelector: selector])
    {
        if(arg != NULL)
        {
            [delegate performSelector: selector withObject: arg withObject: err];
        }
        else
        {
            [delegate performSelector: selector withObject: err];
        } 
    }
    else
    {
        DebugLog(@"Missed Method");
    }
}

这段代码有问题吗?请指教!太感谢了!

4

1 回答 1

0

我认为你还没有在你的类中实现 notifyDelegateOnWillFinish 方法。

您应该在调用委托方法之前添加检查。

if([delegate respondsToSelector:selector])
    [self callDelegate: selector withArg: arg error: err];
于 2012-11-04T09:42:45.120 回答