0

これまでにこれに会ったことはありません、誰かが次のログでクラッシュエラーに直面したことがありますか?

-[__NSCFString zOrder]: unrecognized selector sent to instance 0x11da100

何らかの理由で、次の行でクラッシュします。

    [[MMClass alloc] init];

私のシングルトンクラスの実装は次のようになります。

static id instance = nil;

+ (MMClass *)sharedInstance {

    @synchronized([MMClass class])
    {
        if (!instance)
            [[MMClass alloc] init];
        return instance;
    }

    return nil;
}
4

2 に答える 2

3

初期化されたオブジェクトを変数に割り当てていません。また、シングルトンを作成する最も推奨される方法は次のとおりです。

+ (MMClass *)sharedInstance {
    static dispatch_once_t onceToken;
    static MMClass* _sharedInstance = nil;
    dispatch_once(&onceToken, ^{
        _sharedInstance = [[MMClass alloc] init];
    });
    return _sharedInstance;
}
于 2013-03-05T11:59:20.677 に答える
1

ご覧のとおり、問題はに送信されるメッセージzOrderですNSStringzOrderプロジェクトでメッセージを検索する必要があります。

また、Xcodeは、デバッガーで実行して例外ブレークポイントを設定するときに、問題のあるコードを特定する必要があります。

于 2013-03-05T11:55:21.463 に答える