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被发送到NSString. 您应该在项目中搜索zOrder消息。

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

于 2013-03-05T11:55:21.463 回答