烟花下的孤独 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条回答

      报告相同问题?

      相关推荐 更多相似问题

      问题事件

      • 创建了问题 1月13日

      悬赏问题

      • ¥15 数组并求平均数及各值与平均数之差
      • ¥15 Qt5.9.9+Vs2017遇到字符集问题
      • ¥25 win11无法启用windows功能
      • ¥15 spm-cat进行VBM分析出错
      • ¥50 c++dll中,在函数中创建线程,在函数执行完之后,线程也被销毁了,有什么办法可以让线程持续运行?
      • ¥15 微信小程序真机测试报错空白
      • ¥15 急需帮助!!!非常需要帮助
      • ¥15 idea运行后磁盘爆满
      • ¥15 matlab的编程题。。。。。。。。
      • ¥300 数字n拆分为m个数字之和的组合问题