'UICollectionViewCell'유형의 값을 캐스팅 할 수 없습니다.
스토리 보드에서 사용자 지정 CollectionViewCell을 사용합니다. 앱을 시작하면 다음 메시지가 표시됩니다.
'UICollectionViewCell'유형의 값을 TestProject.CollectionViewCell로 캐스팅 할 수 없습니다.
Xcode의 CollectionViewController에 대한 템플릿은 viewDidLoad의이 코드 줄과 함께 제공되며 스토리 보드의 사양을 변경합니다.
// Register cell classes
self.collectionView!.register(UICollectionViewCell.self, forCellWithReuseIdentifier: reuseIdentifier)
해당 줄을 삭제하면됩니다.
이전 Swift 버전에서 라인은 다음과 같습니다.
// Register cell classes
self.collectionView!.registerClass(UICollectionViewCell.self, forCellWithReuseIdentifier: reuseIdentifier)
UICollectionViewCell 클래스에 viewDidLoad()
내 셀을 등록 했기 때문에이 문제에 직면했습니다 . 내에서 사용 CustomSubcalssCollectionViewCell dequeueReusableCell합니다.cellForItemAtIndexPath
registerClass 와 dequeueReusableCell 이 동일한 클래스 인지 확인 하여 문제를 해결하십시오.
self.registerClass(SomeUICollectionCellClass.self, forCellWithReuseIdentifier: reuseIdentifier)
let cell = collectionView.dequeueReusableCellWithReuseIdentifier(reuseIdentifier, forIndexPath: indexPath) as! SomeUICollectionCellClass
사용자 지정 클래스 (Xcode 검사기)에 TestProject.CollectionViewCell에 대한 사용자 지정 클래스가 아닌 기본 UICollectionViewCell로 설정된 클래스가있을 때이 오류가 발생했습니다.
이를 수정하려면 사용자 정의 클래스를 구현으로 변경하면됩니다.
ViewController
내 단위 테스트에서 Storyboard에서 인스턴스화 할 때이 오류가 발생했습니다 .
storyboard.instantiateViewControllerWithIdentifier("someVC") as! MyViewController
문제는 Identity inspector의 특정 모듈을 Storyboard의 해당 VC에 할당했다는 것입니다. 나는 그것을 제거하여 실행 중에는 응용 프로그램 모듈 인 현재 모듈과 테스트 중에는 테스트 모듈을 기본값으로 사용합니다.
self.collectionView!
.register(MyCollectionViewCell.self,
forCellWithReuseIdentifier: reuseIdentifier
)
이 줄을 삭제할 필요가 없습니다. UICollectionViewCell.self
코드를 사용하여 클래스를 등록하려면에서 상속받은 자신의 셀 클래스 를 등록합니다.
Storyboard와 코드 모두에서 셀 클래스를 등록하면이 오류가 발생합니다. 둘 중 하나만 선택하면 문제가 사라집니다.
Apple이 템플릿에이 코드를 포함하지 않았 으면합니다.
self.registerClass(SomeUICollectionCellClass.self, forCellWithReuseIdentifier: reuseIdentifier)
특히 항상 Storyboard를 통해 셀 등록을 권장하기 때문에. 상황을 매우 혼란스럽게 만듭니다.
참조 URL : https://stackoverflow.com/questions/32166364/could-not-cast-value-of-type-uicollectionviewcell
'Programing' 카테고리의 다른 글
쿼리 문자열로 전달할 자바 스크립트 개체를 병합 (0) | 2021.01.09 |
---|---|
Angular2-숫자 만 허용하는 입력 필드 (0) | 2021.01.09 |
프로젝트 인수-이전 프로그래머에게 무엇을 물어야합니까? (0) | 2021.01.09 |
C #에는 다중 상속이 있어야합니까? (0) | 2021.01.09 |
최근 애플리케이션 목록에서 애플리케이션을 제거하는 방법은 무엇입니까? (0) | 2021.01.09 |