烟花下的孤独 2022-01-13 21:38 采纳率: 0%
浏览 12

Objective-C多线程崩溃问题

问题遇到的现象和发生背景

偶先崩溃,因为启动进入到此页面,大概没启动 APP3-5 次出现崩溃一次,因为多线程原因,具体原因未知,改动之后 bug 解决,为什么能解决也不清楚,请大 佬解惑,
FAMallBindVM 里面是网络请求,请求成功之后会有dispatch_group_leave一一对应

问题相关代码,请勿粘贴截图

dispatch_group_t group = dispatch_group_create();
self.viewModel.disGroup = group;
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
__weak typeof(self) weakSelf = self;

dispatch_group_enter(self.viewModel.disGroup);
dispatch_group_async(self.viewModel.disGroup, queue, ^{
    [FAMallBindVM postBanner:weakSelf.viewModel];
});

dispatch_group_enter(self.viewModel.disGroup);
dispatch_group_async(self.viewModel.disGroup, queue, ^{
    [FAMallBindVM postNews:weakSelf.viewModel];
});

dispatch_group_enter(self.viewModel.disGroup);
dispatch_group_async(self.viewModel.disGroup, queue, ^{
    [FAMallBindVM postCategory:weakSelf.viewModel];
});

dispatch_group_enter(self.viewModel.disGroup);
dispatch_group_async(self.viewModel.disGroup, queue, ^{
    [FAMallBindVM postArticle:weakSelf.viewModel];
});
  
dispatch_group_notify(self.viewModel.disGroup, queue, ^{
    [weakSelf.mainTableView refreshHandle:HJRefresh_end];
});
运行结果及报错内容

img


唯一不同的是这块代码,我把里面的网络请求内容拿出来了,拿出来之后问题解决
dispatch_group_async(self.viewModel.disGroup, queue, ^{
[FAMallBindVM postCategory:weakSelf.viewModel];
});

我的解答思路和尝试过的方法

此处代码问题解决
dispatch_group_t group = dispatch_group_create();
self.viewModel.disGroup = group;
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_group_enter(self.viewModel.disGroup);
[FAMallBindVM postBanner:self.viewModel];

dispatch_group_enter(self.viewModel.disGroup);
[FAMallBindVM postNews:self.viewModel];

dispatch_group_enter(self.viewModel.disGroup);
[FAMallBindVM postCategory:self.viewModel];

dispatch_group_enter(self.viewModel.disGroup);
[FAMallBindVM postArticle:self.viewModel];
  
__weak typeof(self) weakSelf = self;
dispatch_group_notify(self.viewModel.disGroup, queue, ^{
    [weakSelf.mainTableView refreshHandle:HJRefresh_end];
});
我想要达到的结果
  • 写回答

1条回答 默认 最新

  • 「已注销」 2022-01-14 09:35
    关注

    你把崩溃前得日志发给我,我看看错误提示得内容

    评论

    报告相同问题?

    问题事件

    • 创建了问题 1月13日

    悬赏问题

    • ¥15 询问MYSQL查询SQLSERVER数据表并比较差异后,更新MYSQL的数据表
    • ¥15 关于#前端#的问题,请各位专家解答!
    • ¥15 最小生成树问题 Prim算法和Kruskal算法
    • ¥25 医院住院病人呼叫器设计
    • ¥15 不想和现在的团队合作了,怎么避免他们对程序动手脚
    • ¥20 C语言字符串不区分大小写字典排序相关问题
    • ¥15 关于#python#的问题:我希望通过逆向技术爬取1688搜索页下滑加载的数据
    • ¥15 关于Linux的终端里,模拟实现一个带口令保护的屏保程序遇到的输入输出的问题!(语言-c语言)
    • ¥30 请问,这个嵌入式Linux系统谁能帮我分析一下,crc检验区域在哪,不是内核的校验,内核校验我已经找到了
    • ¥15 二分类改为多分类问题