iOS App 在 iOS 13 上的编译器生成代码中崩溃
Posted
技术标签:
【中文标题】iOS App 在 iOS 13 上的编译器生成代码中崩溃【英文标题】:iOS App crashed in compiler generated code on iOS 13 【发布时间】:2019-11-05 09:52:30 【问题描述】:我在 Fabric crashalytics 中遇到了这个错误。 它显示为编译器生成的错误。 我尝试了很多方法来解决它,但都不起作用。 我需要帮助。我是开发新手。
“我尝试了许多方案来重现错误,例如重新加载数据和旋转设备,但它在我的设备 iphone 6 中正常工作,但在客户端 iphone XR 中它崩溃了。”
Crashed: com.apple.main-thread
0 WorkInProgress 0x10471dc58 specialized
WIPInsightNewVC.collectionView(_:layout:sizeForItemAt:) (<compiler-
generated>)
1 WorkInProgress 0x104713390 @objc
WIPInsightNewVC.collectionView(_:layout:sizeForItemAt:) (<compiler-
generated>)
2 UIKitCore 0x1be82c200 -
[UICollectionViewFlowLayout
_getSizingInfosWithExistingSizingDictionary:] + 2976
3 (Missing) 0x4a655d81be82d800 (Missing)
4 (Missing) 0x0 (Missing)
5 (Missing) 0x741c9081be820800 (Missing)
6 (Missing) 0x791e1b01be821000 (Missing)
7 (Missing) 0x7516ca81be7f1c00 (Missing)
8 (Missing) 0x0 (Missing)
9 (Missing) 0x1b2e2401bac27b00 (Missing)
10 (Missing) 0x1674481c19ee0f0 (Missing)
11 (Missing) 0x0 (Missing)
12 (Missing) 0x0 (Missing)
13 (Missing) 0x3311a201c1946c00 (Missing)
14 (Missing) 0xa4c0701c1971c00 (Missing)
15 (Missing) 0x414a1f81c1972800 (Missing)
16 (Missing) 0x0 (Missing)
17 (Missing) 0x0 (Missing)
18 (Missing) 0x4b0edd81bae87800 (Missing)
19 (Missing) 0x597e0b01bae87000 (Missing)
20 (Missing) 0x0 (Missing)
21 (Missing) 0x0 (Missing)
22 (Missing) 0x0 (Missing)
23 libdyld.dylib 0x1bad06f30 start + 4
sizeForItemAt 方法中的代码,它可能会帮助您解决我的问题。
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize
var width = view.frame.width - 40
let height = UIScreen.main.bounds.height
var estimatedFrame = CGRect()
var size = CGSize()
size = CGSize(width: width, height: .greatestFiniteMagnitude)
if collectionView == progressCV
let obj = (appDel?.objActiveUserTaskProgress?.workProgressRecords?[indexPath.row])!
estimatedFrame = NSAttributedString(attributedString: obj.pROGRESSTASKDESCRIPTION.htmlAttributedString()!).boundingRect(with: size, options: .usesLineFragmentOrigin, context: nil)
sizes = Int(estimatedFrame.height)
else
let obj = (appDel?.objActiveUserTaskProgress?.graphDetails?[indexPath.row])!
estimatedFrame = NSAttributedString(attributedString: obj.pROGRESSTASKDESCRIPTION.htmlAttributedString()!).boundingRect(with: size, options: .usesLineFragmentOrigin, context: nil)
sizes = Int(estimatedFrame.height)
print(sizes)
if sizes <= 20
sizes = 25
sizes += 64
if UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiom.pad
width = progressCV.bounds.width / 2 - 15
return CGSize(width: Int(width), height: sizes)
else
if iphoneX
if width > height
width = progressCV.bounds.width
return CGSize(width: Int(width), height: sizes)
【问题讨论】:
你能解释一下你正在尝试什么吗,只是发布错误不会给你一个解决方案 解释你的问题。看到***.com/help/how-to-ask @vishal :我在结构中收到编译器生成错误的崩溃报告,所以请帮我解决它。我尝试了不同的方法来解决它,但这不起作用。谢谢 @JakirHossain 请帮我解决它。我是 swift 和 ios 开发的新手。我在结构崩溃分析中收到此错误日志。 @Joakim Danielson 请帮帮我 【参考方案1】:在 iOS 13 中,无论何时隐藏(或)取消隐藏视图,都会为高度约束赋予恒定值,并且所有操作都必须仅在主线程中完成。
例如:
DispatchQueue.main.async
self.heightConstraint.constant = 150
self.listView.isHidden = true
【讨论】:
以上是关于iOS App 在 iOS 13 上的编译器生成代码中崩溃的主要内容,如果未能解决你的问题,请参考以下文章
iOS开发-canOpenURL: failed for URL: "xx" - error:"This app is not allowed to query fo(代