dequeueReusableCell
MenuCollectionViewCell
için bir dosya oluşturduğum ve bu sınıf için hücreyi değiştirdikten sonra bu sınıf için değiştirdiğimde hata aldım. Bunu raywenderlich'ten takip ediyorum tutorial. Kodu örnekle kontrol ettim ve hatayı bulamadım. Bu hataya neden olan yaygın hatalar nelerdir?Swift Custom CollectionViewCell Döküm dequeueReusableCell ne zaman başarısız oldu
Dökümyü tekrar as UICollectionViewCell
olarak değiştirirseniz, hata kaybolur.
override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCellWithReuseIdentifier(reuseIdentifier, forIndexPath: indexPath) as MenuCollectionViewCell
cell.backgroundColor = UIColor.lightGrayColor()
return cell
}
Hata:
libswiftCore.dylib`swift_dynamicCastClassUnconditional:
0x10bd39860: pushq %rbp
0x10bd39861: movq %rsp, %rbp
0x10bd39864: testq %rdi, %rdi
0x10bd39867: je 0x10bd3989e ; swift_dynamicCastClassUnconditional + 62
0x10bd39869: movabsq $-0x7fffffffffffffff, %rax
0x10bd39873: testq %rax, %rdi
0x10bd39876: jne 0x10bd3989e ; swift_dynamicCastClassUnconditional + 62
0x10bd39878: leaq 0xb52e9(%rip), %rax
0x10bd3987f: movq (%rax), %rax
0x10bd39882: andq (%rdi), %rax
0x10bd39885: nopw %cs:(%rax,%rax)
0x10bd39890: cmpq %rsi, %rax
0x10bd39893: je 0x10bd398ad ; swift_dynamicCastClassUnconditional + 77
0x10bd39895: movq 0x8(%rax), %rax
0x10bd39899: testq %rax, %rax
0x10bd3989c: jne 0x10bd39890 ; swift_dynamicCastClassUnconditional + 48
0x10bd3989e: leaq 0x36b7d(%rip), %rax ; "Swift dynamic cast failed"
0x10bd398a5: movq %rax, 0xb4c0c(%rip) ; gCRAnnotations + 8
0x10bd398ac: int3
0x10bd398ad: movq %rdi, %rax
0x10bd398b0: popq %rbp
0x10bd398b1: retq
0x10bd398b2: nopw %cs:(%rax,%rax)
Güncelleme: aşağıdaki kodu ile hücre tipini kontrol denedim ve Film şeridinde MenuCollectionViewCell
ayarlayın halde yanlış bildirmektir.
print(cell is MenuCollectionViewCell) => false
Boilerplate kodunun çok fazla kalp durmasına neden olacağı inanılmaz, bu sorunu gidermek için bir saatten fazla boşa harcanan !!! Teşekkürler. – kakubei
Bu da beni bir süreliğine şaşırttı. Eğer 'UICollectionViewController', storyboardda hücre tanımlanmışsa hücre sınıfını kaydetmeniz gerekebileceğini anlamamıştı, ancak, çizgi şablon boilerplate'de olduğundan, ilk önce onu kaldırmadım. –