Ios 在展开可选值collectionview时意外发现nil
我有一个照片视图应用程序,我使用Ios 在展开可选值collectionview时意外发现nil,ios,swift,alamofire,rx-swift,Ios,Swift,Alamofire,Rx Swift,我有一个照片视图应用程序,我使用Alamofire获取数据,并使用RxSwift观察API中的变化。一切正常,我可以打印返回项目的总数,甚至可以打印单个项目,但当我将我的UIlabel文本设置为从代码中获取的标题值时,应用程序崩溃。我不知道为什么这是任何帮助将不胜感激 崩溃是线程1:致命错误:在展开可选值时意外发现nil 主单元格 func configueCell(flickerPhotoModel: FlickrPhotoModel) -> Void { self.l
Alamofire
获取数据,并使用RxSwift
观察API
中的变化。一切正常,我可以打印返回项目的总数,甚至可以打印单个项目,但当我将我的UIlabel
文本设置为从代码中获取的标题值时,应用程序崩溃。我不知道为什么这是任何帮助将不胜感激
崩溃是线程1:致命错误:在展开可选值时意外发现nil
主单元格
func configueCell(flickerPhotoModel: FlickrPhotoModel) -> Void {
self.layer.backgroundColor = UIColor.lightGray.cgColor
print("Cell \(String(describing: flickerPhotoModel.id))")
flikrTitle.text = flickerPhotoModel.title
}
private func setupPageBinding() {
currentState.asObservable()
.subscribe(onNext: { currentState in
if currentState == .initialLoading || currentState == .loadingNextPage {
self.fetchNextPageOfPhotos()
}
}).disposed(by: disposeBag)
photos.asObservable()
.map { $0.count > 0 ? self.currentPage.value + 1 : self.currentPage.value }
.bind(to: currentPage)
.disposed(by: disposeBag)
}
PhotoViewModel
func configueCell(flickerPhotoModel: FlickrPhotoModel) -> Void {
self.layer.backgroundColor = UIColor.lightGray.cgColor
print("Cell \(String(describing: flickerPhotoModel.id))")
flikrTitle.text = flickerPhotoModel.title
}
private func setupPageBinding() {
currentState.asObservable()
.subscribe(onNext: { currentState in
if currentState == .initialLoading || currentState == .loadingNextPage {
self.fetchNextPageOfPhotos()
}
}).disposed(by: disposeBag)
photos.asObservable()
.map { $0.count > 0 ? self.currentPage.value + 1 : self.currentPage.value }
.bind(to: currentPage)
.disposed(by: disposeBag)
}
控制器
private func setupCollectionViewBinding() {
print("JSONNN x \(self.viewModel.photos.value.count)")
viewModel.photos
.asObservable()
.bind(to: collectionView.rx.items(cellIdentifier: reuseIdentifier, cellType: MainCell.self))
{ _, photo, cell in
cell.configueCell(flickerPhotoModel: photo)
print("JSONNN 5 \(self.viewModel.photos.value.count)")
}
.disposed(by: disposeBag)
viewModel.currentState
.asObservable()
.map { $0 == .initialLoading || $0 == .initialLoadingFailure }
.bind(to: collectionView.rx.isHidden)
.disposed(by: disposeBag)
collectionView.rx.modelSelected(FlickrPhotoModel.self)
.subscribe(onNext: {
self.routingDelegate?.handlePhotoSelection($0)
})
.disposed(by: disposeBag)
}
检查UILabel,它可能在Interface Builder/StoryBoard中没有连接。单元格是否已在集合视图中注册?我不理解您的问题@PeterPajchlI将其注册到viewController中,如下所示
collectionView.register(MainCell.self,forCellWithReuseIdentifier:reuseIdentifier)
检查您的flikrTitle标签和flickPhotoModel.title,其中一个应为nil.print(“单元格标签:\(flikrTitle)flickPhotoModel.title:\(字符串(描述:flickPhotoModel.title))),并检查哪一个为nil。如果两者都有价值,那么你的问题就不同了。