0

一部のデバイスでは、次のエラーが原因でアプリがクラッシュしています。NSInvalidArgumentException:-[OS_dispatch_data notifyDelegateOnWillFinish]:認識されないセレクターがインスタンス0x2082d7a0に送信されました

この動作を再現することはできません。急いで分析してクラッシュを追跡していますが、一部のユーザーはこの問題を経験しているようです。

私はこのエラーをグーグルしようとしましたが成功しませんでした。だからうまくいけば、ここの誰かがそれが何を意味するのか知っています。

どうもありがとう!!

編集:私がディスパッチを使用する私のコードの唯一の部分はこれです

- (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 に答える