我在viewController的viewDidLoad中调用了以下函数:
fileprivate func setupScrollView(){
//this will be the height of the image on this ViewController
var imageHeight = ScreenSize.height() - 195 // replace with a relative calculation
if ScreenSize.model() == .iphoneX{
imageHeight = ScreenSize.height() * 0.58
}
self.dressImageScrollViewHeight.constant = imageHeight
//now determine the image width based on height
let scale = imageHeight / (self.item?.thumbnailSize?["height"] as? CGFloat ?? 1)
let newWidth = (self.item?.thumbnailSize?["width"] as? CGFloat ?? 0) * scale
self.imageScrollView.contentSize.width = newWidth + 20
self.imageScrollView.contentInset.left = 10
self.imageScrollView.contentInset.right = 20
self.imageScrollView.contentOffset.x = -10
guard self.firstImage != nil else{return}
//this is the imageView for the first image
// utilizes the preview image used on the cell in the previous view controller collection
let firstImageView = PFImageView(frame: CGRect(x: 0, y: 0, width: newWidth, height: imageHeight))
firstImageView.image = self.firstImage
self.imageScrollView.imageViews.append(firstImageView)
self.imageScrollView.addSubview(firstImageView)
}
基本上,我的主要细节视图类似。在主视图中,选择了一个单元格,它将转到具有图像集合的此详细视图。该项目的主视图控制器单元格中使用的图像被传递并作为第一个图像附加到细节图像集合中。
最近,我已经看到了与此代码相关的崩溃次数大量增加。我很确定它与函数的最后几行有关。
以下是我的Crashlytics提供的见解。
事情是,Crashlytics的日志指向那个警卫声明作为问题,除了我无法重新创建这个问题,但它确实发生在我的用户身上,因为这些崩溃报告正在进入现在所有的时间。Parse的PFImageView:https://github.com/parse-community/ParseUI-iOS/blob/master/ParseUI/Classes/Views/PFImageView.m