입니다 제가 구현하려는 어떤 CollectionViewCell에 사용자가 클릭 한 다음 새보기가 가 스크롤 및 을 확대 표시 할 때. 기본적으로 MyCollectionViewController 및 MyScrollViewController라는 두 개의 다른 클래스가 있습니다.충돌 : SDWebImage
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath){
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let VC = storyboard.instantiateViewController(withIdentifier: "myScrollVC") as? MyScrollViewController
self.navigationController?.pushViewController(VC!, animated: true)
VC?.setImageToScrollView(image_URL: (self.jsonData?.HD_WALLPAPER![indexPath.row].wallpaper_image)!)
}
그리고 내 스크롤 뷰 컨트롤러에 코드 부분을 다음과 같은 한 : 나는 내 컬렉션 뷰 컨트롤러에 코드 부분을 다음 한 나는 SDWebImage ... 오픈 소스 라이브러리를 사용하고
import UIKit
import SDWebImage
class MyScrollViewController: UIViewController, UIScrollViewDelegate {
@IBOutlet weak var myImageView: UIImageView!
@IBOutlet weak var myScrollView: UIScrollView!
override func viewDidLoad(){
super.viewDidLoad()
self.myScrollView.minimumZoomScale = 1.0
self.myScrollView.maximumZoomScale = 6.0
}
public func setImageToScrollView(image_URL: String){
DispatchQueue.main.async {
self.myImageView!.sd_setImage(with: URL(string: image_URL), completed: {
(image, error, cacheType, url) in
//Completion Block ... Do Nothing
})
}
}
override func didReceiveMemoryWarning(){
super.didReceiveMemoryWarning()
}
func viewForZooming(in scrollView: UIScrollView) -> UIView?{
return self.myImageView
}
}
이미지 캐싱을 관리합니다.
문제 : 때때로 이미지가 오류없이 성공적으로로드되지만 시간 내 응용 프로그램의 가장 충돌는 다음과 같은 오류와 함께 sd_setImage API 프레임 워크 SDWebImage 의를 실행하는 동안 ......
치명적인 오류 : 옵션 값
을 풀기 동안 예기치 않게 전무 발견QUERY :
- 첫째 난과 pushViewController라고하고 나는 정의 함수 내 사용자 지정했다. 콜렉션 뷰 셀에서 함수를 호출하는 적절한 방법입니까?
- 선택 값을 unwrapping하는 동안 예기치 않게 nil이 발견 된 이유는 무엇입니까? 오류가있는 이미지 URL을 얻을 수는 있지만.
'self.myImageView'는'nil' 인 것 같습니다. –
@RajibTheKing 강제로 이미지를 래핑하지 않고 imageView에 바인딩하도록 할 경우 수행하십시오. 언젠가는 귀하의 응용 프로그램이 언젠가는 귀하의 애플 리케이션이 추락 얻을 점점 –