UICollectionView 的 99% CPU 使用率 - 显着位置更改未调用“didUpdateLocations”

     2023-03-05     154

关键词:

【中文标题】UICollectionView 的 99% CPU 使用率 - 显着位置更改未调用“didUpdateLocations”【英文标题】:99% CPU usage of UICollectionView - Significant Location Change not calling "didUpdateLocations" 【发布时间】:2016-02-17 13:17:08 【问题描述】:

有效的是,应用程序会在位置发生重大变化时启动到后台。在AppDelegate 中,我检查UIApplicationLaunchOptionsLocationKey 并初始化位置管理器:

locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters
locationManager.distanceFilter = 50
locationManager.allowsBackgroundLocationUpdates = true
locationManager.startMonitoringSignificantLocationChanges()

初始视图控制器是UITabBarController,它显示UICollectionViewController

当我设置 UICollectionView 中没有单元格时,一切正常,locationManagerdidUpdateLocations 被调用。

但是,当 UICollectionViewnumberOfItemsInSection 返回 1 时,didUpdateLocations 不会被调用。相反,UICollectionView 的 CPU 使用率为 99%,持续几分钟,直到应用崩溃。

我从单元格中删除了所有控件和所有代码,所以它现在是一个空单元格,但仍然会发生这种情况。

在 Time Profiler 中,我发现这与 UICollectionViewData setLayoutAttributes 有关。

这里有什么问题?

更新一:setLayoutAttributes下有栈。

更新 2:应用运行良好,用户正常启动时从未崩溃。

【问题讨论】:

【参考方案1】:

你比这个网站上的任何人都更了解代码,但是这看起来很可疑:

您正在通过观察者运行某种循环,无论它们是什么。 看起来每一个它都在做一个回调,那是在做某种需要提交的事务,作为提交的一部分,它正在显示一些东西,作为其中的一部分,它正在做一堆布局,子视图等。 这基本上是所有时间。

您可能希望在完成之前关闭显示更新。

【讨论】:

嗨,迈克,感谢您的调查,我没有打电话给任何观察员,但我找到了解决方案,请参阅上面的答案。【参考方案2】:

有趣的是,解决方案是禁用一次重大的位置更改并运行应用程序:

locationManager.allowsBackgroundLocationUpdates = false
locationManager.stopMonitoringSignificantLocationChanges()

重新启用并运行应用程序后,它运行良好:

locationManager.allowsBackgroundLocationUpdates = true
locationManager.startMonitoringSignificantLocationChanges()

我尝试了一切,从删除 3rd 方框架到将应用程序精简到最少的代码,是的,我还清理了构建文件夹 100 次。

iOS 应用程序注册可能有问题,以通知重大位置变化。希望这可以节省我弄清楚这一点所花费的时间。

【讨论】:

如何在 MATLAB 中计算 99% 的覆盖率?

】如何在MATLAB中计算99%的覆盖率?【英文标题】:Howtocompute99%coverageinMATLAB?【发布时间】:2011-01-2400:09:51【问题描述】:我在MATLAB中有一个矩阵,我需要找到每列的99%值。换句话说,99%的人口具有比它更大的值。MATLAB中有这个函... 查看详情

准确率 99%,分类不正确 - 三元网络

...18-05-3119:58:21【问题描述】:我正在尝试按照facenetarticle中的描述训练一个三元组网络。我通过计算正距离(锚-正)小于负距离(锚-负)的三元组,然后除以批次中三元组的总数来计算验证集的准确度.我得到了很好的结果:99%的... 查看详情

如何滚动另一个 UICollectionView 下方的 UICollectionView?

】如何滚动另一个UICollectionView下方的UICollectionView?【英文标题】:HowtoscrollUICollectionViewthatisunderneathanotherUICollectionView?【发布时间】:2017-08-1018:46:59【问题描述】:这是我的问题,您在gif上看到的4个橙色矩形是一个垂直的UICollec... 查看详情

如何计算python线性回归模型中斜率的99%置信区间?

】如何计算python线性回归模型中斜率的99%置信区间?【英文标题】:Howtocalculatethe99%confidenceintervalfortheslopeinalinearregressionmodelinpython?【发布时间】:2016-07-2320:42:25【问题描述】:我们有以下线性回归:y~b0+b1*x1+b2*x2。我知道Matlab中... 查看详情

css属性,可以完成99%的页面编写

border:   border:4pxdottedred;         宽度样式颜色solid(实线)   border-style:      -none:  & 查看详情

uicollectionview的使用

...leView;若是需要构建横向滑动列表、多行多列布局,使用UICollectionView+UICollectionViewFlowLayout搭建;更复杂的布局,则可以使用UICollectionView+自定义Layout来实现。UICollectionView工作流程:当UICollectionView显示内容时,先从数据源获取cell... 查看详情

将标题添加到 UICollectionView,而不是 UICollectionView 的部分

】将标题添加到UICollectionView,而不是UICollectionView的部分【英文标题】:AddheadertoUICollectionView,nottosectionofUICollectionView【发布时间】:2015-01-0512:19:06【问题描述】:UITableView也有类似的功能。我可以为UITableView或UITableView中的每个部... 查看详情

设置 UICollectionView 的 UIEdgeInsets

】设置UICollectionView的UIEdgeInsets【英文标题】:SetUICollectionView\'sUIEdgeInsets【发布时间】:2017-03-0412:31:10【问题描述】:我希望UICollectionView的项目位于中心,因此我编写了以下代码:funccollectionView(collectionView:UICollectionView,layoutcollec... 查看详情

UICollectionView 间距不相等

】UICollectionView间距不相等【英文标题】:UICollectionViewSpacingNotEqual【发布时间】:2017-07-0720:01:41【问题描述】:我有一个垂直的UICollectionView,具有标准宽度和可变高度的单元格。我对间距有疑问。对于单元格的每个高度,单元格... 查看详情

每个部分的 UICollectionView 布局

】每个部分的UICollectionView布局【英文标题】:UICollectionViewlayoutforeachsection【发布时间】:2016-07-2100:51:16【问题描述】:我需要将我的UICollectionView部分之一设置为水平滚动,而UICollectionView的其余部分则垂直滚动。例如:SECTION1下... 查看详情

滚动时 UICollectionView 的滞后

】滚动时UICollectionView的滞后【英文标题】:LaginUICollectionViewonScroll【发布时间】:2015-09-2407:32:40【问题描述】:我使用UICollectionView显示存储在NSMutableArray中的一些图像这是我的cellForItemAtIndexPath代码-(UICollectionViewCell*)collectionView:(U... 查看详情

uicollectionview的间距列

】uicollectionview的间距列【英文标题】:interspacingcolumnsofuicollectionview【发布时间】:2013-07-0908:33:50【问题描述】:我正在尝试使用UICollectionView创建一个单元格网格。我会删除所有填充,单元格之间的间距。我使用了布局方法和属... 查看详情

教你如何迅速秒杀掉:99%的海量数据处理面试题(转)

教你如何迅速秒杀掉:99%的海量数据处理面试题本文经过大量细致的优化后,收录于我的新书《编程之法:面试和算法心得》第六章中,新书目前已上架京东/当当作者:July出处:结构之法算法之道blog  前言  一般... 查看详情

如何禁用 UICollectionView 的手势滑动

】如何禁用UICollectionView的手势滑动【英文标题】:HowtodisablegestureswipeforUICollectionView【发布时间】:2014-11-1214:45:57【问题描述】:目前,我正在制作分页UICollectionView。我想从UICollectionView禁用手势滑动效果,因为我要添加UIPagerCont... 查看详情

可以完成99%的静态页面的html标签

HTML:一套浏览器认知的规则HTML分为两个部分,头和身体。一个完整的网页相当于一个裸体的人,我们利用HTML给它穿上衣服,使它更好看。下面我将为大家介绍一下HTML一些基本的标签,而这些基本的标签,基本上可以完成百分之... 查看详情

更改 UICollectionView 部分标题的高度

】更改UICollectionView部分标题的高度【英文标题】:ChangeheightoftheUICollectionViewsectionheader【发布时间】:2014-07-1910:36:59【问题描述】:这是我用来调整UICollectionView的sectionheader高度的方法:funccollectionView(collectionView:UICollectionView!,layo... 查看详情

折叠uicollectionview

参考技术A先分析一下结构,整体是UICollectionView,在UICollectionView头部嵌套一个UICollectionView,详细内容如图所示:先创建一个UICollectionView,UICollectionView的顶部偏移120高度,来做为UICollectionView的头部试图,在头部添加一个UICollectionV... 查看详情

二级的uicollectionview怎么实现

参考技术AUICollectionView和UICollectionViewController类是iOS6新引进的API,用于展示集合视图,布局更加灵活,可实现多列布局,用法类似于UITableView和UITableViewController类。使用UICollectionView必须实现UICollectionViewDataSource,UICollectionViewDelegate,... 查看详情