加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ios – 在dispatch_once崩溃(&onceToken,^ {

发布时间:2020-12-14 17:18:59 所属栏目:百科 来源:网络整理
导读:+(Service *) sharedInstance{ static LocationService *instance = nil; static dispatch_once_t onceToken; dispatch_once(onceToken,^{ Crash instance = [[self alloc]init]; }); return instance;} 我正在使用上面显示的代码在我的应用程序中创建一个单
+(Service *) sharedInstance
{
    static LocationService *instance = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken,^{              <<<< Crash
        instance = [[self alloc]init];
    });
    return instance;
}

我正在使用上面显示的代码在我的应用程序中创建一个单例服务实例.这是从“AppDelegate application:willFinishLaunchingWithOptions:”调用的.

对于大多数用户,此代码工作正常.但对于2个用户,该应用程序崩溃在“dispatch_once(& onceToken,^ {”行.

他们删除了应用并重新安装了它.但他们仍然看到了这个问题.只有这两个用户正面临这个问题.其他人从未见过它.我有.dsym,.crash和其他相关文件来做进一步的调试.只是想知道我该如何处理它?如果有人看到过类似的问题,他们是如何着手修复它的?

解决方法

不要使用自我.因为在课堂开始之前自己不可用.相反,您可以使用类名如下.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读