[__NSCFString zOrder]:发送到实例的无法识别的选择器

时间:2013-03-05 11:49:00

标签: objective-c xcode cocos2d-iphone singleton

以前从未见过这个,有没有人遇到过以下日志的崩溃错误?

-[__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;
}

2 个答案:

答案 0 :(得分:3)

您没有将初始化对象分配给变量。此外,最推荐的创建单例的方法是:

+ (MMClass *)sharedInstance {
    static dispatch_once_t onceToken;
    static MMClass* _sharedInstance = nil;
    dispatch_once(&onceToken, ^{
        _sharedInstance = [[MMClass alloc] init];
    });
    return _sharedInstance;
}

答案 1 :(得分:1)

如您所见,问题是发送给zOrder的消息NSString。您应该在项目中搜索zOrder消息。

此外,Xcode应该在调试器中运行并设置异常断点时查明有问题的代码。