2015-07-23 12 views
8

Tôi nhận được thông báo lỗi này khi cố gắng tải UICollectionView.Swift - không thể loại bỏ một dạng xem: UICollectionElementKindCell với số nhận dạng

2015-07-23 16: 16: 09,754 XXXXX [24.780: 465.607] * Chấm dứt ứng dụng do ngoại lệ còn tự do 'NSInternalInconsistencyException', lý do: 'có thể không dequeue một cái nhìn của loại hình: UICollectionElementKindCell với định danh CollectionViewCell - phải đăng ký một ngòi bút hoặc một lớp học cho các định danh hoặc kết nối với một tế bào nguyên mẫu trong một kịch bản' * Đầu tiên gọi ném stack:

mã của tôi

@IBOutlet var collectionView: UICollectionView! 

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { 

     let cell = collectionView.dequeueReusableCellWithReuseIdentifier("CollectionViewCell", forIndexPath: indexPath) as! CollectionViewCell 

     cell.backgroundColor = UIColor.blackColor() 
     cell.textLabel?.text = "\(indexPath.section):\(indexPath.row)" 
     cell.imageView?.image = UIImage(named: "category") 

     return cell 

    } 

Tôi đã khai báo CollectionViewCell trong thanh tra cốt truyện nhưng thông báo lỗi vẫn xuất hiện.

enter image description here

Vui lòng tham khảo. Cảm ơn bạn.

+0

Tôi đoán bạn đang tạo của bạn Nibs tế bào riêng biệt và không nằm trong 'UICollectionView' của bạn. Nếu có, bạn cần phải đăng ký tập tin nib với 'UICollectionView' trước. sử dụng UINib * cellNib = [UINib nibWithNibName: @ "CollectionViewCell" bundle: nil]; [self.collectionView registerNib: cellNib forCellWithReuseIdentifier: @ "CollectionViewCell"]; –

+0

@Dato 'Mohammad Nurdin bạn đã có thể giải quyết vấn đề này chưa? – Miknash

+0

@Dato 'Mohammad Nurdin bạn đã có thể giải quyết vấn đề này chưa? – Miknash

Trả lời

9

Sau khi tham gia một cái nhìn tại ngoại trừ của bạn:

2015-07-23 16: 16: 09,754 XXXXX [24.780: 465.607] * Chấm dứt ứng dụng do ngoại lệ còn tự do 'NSInternalInconsistencyException', lý do: 'có thể không dequeue một cái nhìn của loại hình: UICollectionElementKindCell với định danh CollectionViewCell - phải đăng ký một ngòi bút hoặc một lớp học cho các định danh hoặc kết nối với một tế bào nguyên mẫu trong một kịch bản' * Đầu tiên ném gọi stack:

phần cuối cùng là quan trọng nhất:

phải đăng ký một ngòi bút hoặc một lớp học cho các định danh hoặc kết nối với một tế bào nguyên mẫu trong một kịch bản

Có nghĩa là xem bộ sưu tập của bạn không đăng ký ô tùy chỉnh của bạn. Để giải quyết tiện ích này sau trong bạn viewDidLoad:

var nib = UINib(nibName: "UICollectionElementKindCell", bundle:nil) 
self.collectionView.registerNib(nib, forCellReuseIdentifier: "CollectionViewCell") 
+0

Cảm ơn bạn. vấn đề của tôi là tôi đã không đăng ký Nib của tôi và thay vì đăng ký lớp học với: self.collectionView! .registerClass (customCollectionCell.self, forCellWithReuseIdentifier: "Cell") Mã của bạn hoạt động tuy nhiên. –

0

Trong viewDidLoad của bạn() đặt trong mã này

collectionView.registerClass(YourCustomCellClass.self, forCellWithReuseIdentifier: "cell") 
5

Đối Swift 3:

collectionView.register(YourCustomCellClass.self, forCellWithReuseIdentifier: "cell") 
Các vấn đề liên quan