有效的是,應用程序在重大位置更改時啓動到後臺。在AppDelegate
予檢查的UIApplicationLaunchOptionsLocationKey
和init位置管理器:UICollectionView的99%CPU使用率 - 重要的位置更改無法調用「didUpdateLocations」
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters
locationManager.distanceFilter = 50
locationManager.allowsBackgroundLocationUpdates = true
locationManager.startMonitoringSignificantLocationChanges()
初始視圖控制器是UITabBarController
其示出了UICollectionViewController
。
當我設置UICollectionView中沒有單元格時,一切正常,的didUpdateLocations
被調用。
但是,當UICollectionView
的numberOfItemsInSection
返回1時,didUpdateLocations
不會被調用。相反,在應用程序崩潰之前,UICollectionView
會有99%的CPU使用時間。
我刪除了單元格中的所有控件和所有代碼,所以它現在是一個空單元格,仍然會發生這種情況。
在時間分析器中,我發現這與UICollectionViewData setLayoutAttributes
有關。
這裏有什麼錯?
更新1:有setLayoutAttributes
下的堆棧。
更新2:的應用程序工作正常,並通過用戶正常啓動時永不死機。
嗨邁克,感謝您的調查,我沒有給任何觀察員打電話,但我找到了解決方案,請參閱上面的答案。 – Manuel