gpt4 book ai didi

ios - 无法使类型为 X 且标识符为 Y 的 View 出列(NSInternalInconsistencyException)

转载 作者:行者123 更新时间:2023-11-30 12:37:37 26 4
gpt4 key购买 nike

我有两个 Collection View ,第一个 Collection View 没有第二个 Collection View ,效果很好。但是当我添加第二个 Collection View 时,我收到此错误:

2017-03-08 18:38:28.756 kashanmap[1395:16000] *** Assertion failure in -[UICollectionView _dequeueReusableViewOfKind:withIdentifier:forIndexPath:viewCategory:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit_Sim/UIKit-3600.6.21/UICollectionView.m:4971
2017-03-08 18:38:28.769 kashanmap[1395:16000] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'could not dequeue a view of kind: UICollectionElementKindCell with identifier cellContentAJob - must register a nib or a class for the identifier or connect a prototype cell in a storyboard'
*** First throw call stack:
(
0 CoreFoundation 0x000000010a2e5d4b __exceptionPreprocess + 171
1 libobjc.A.dylib 0x000000010992621e objc_exception_throw + 48
2 CoreFoundation 0x000000010a2e9e42 +[NSException raise:format:arguments:] + 98
3 Foundation 0x00000001094bb66d -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 195
4 UIKit 0x000000010b76f44c -[UICollectionView _dequeueReusableViewOfKind:withIdentifier:forIndexPath:viewCategory:] + 2176
5 UIKit 0x000000010b76f8ea -[UICollectionView dequeueReusableCellWithReuseIdentifier:forIndexPath:] + 169
6 kashanmap 0x0000000108bc4643 _TFC9kashanmap25ContentAJobViewController14collectionViewfTCSo16UICollectionView13cellForItemAtV10Foundation9IndexPath_CSo20UICollectionViewCell + 211
7 kashanmap 0x0000000108bc54a7 _TToFC9kashanmap25ContentAJobViewController14collectionViewfTCSo16UICollectionView13cellForItemAtV10Foundation9IndexPath_CSo20UICollectionViewCell + 87
8 UIKit 0x000000010b75a75f -[UICollectionView _createPreparedCellForItemAtIndexPath:withLayoutAttributes:applyAttributes:isFocused:notify:] + 467
9 UIKit 0x000000010b75a586 -[UICollectionView _createPreparedCellForItemAtIndexPath:withLayoutAttributes:applyAttributes:] + 35
10 UIKit 0x000000010b75fa5e -[UICollectionView _updateVisibleCellsNow:] + 4803
11 UIKit 0x000000010b765725 -[UICollectionView layoutSubviews] + 313
12 UIKit 0x000000010aee1ab8 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 1237
13 QuartzCore 0x0000000111f76bf8 -[CALayer layoutSublayers] + 146
14 QuartzCore 0x0000000111f6a440 _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 366
15 QuartzCore 0x0000000111f6a2be _ZN2CA5Layer28layout_and_display_if_neededEPNS_11TransactionE + 24
16 QuartzCore 0x0000000111ef8318 _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 280
17 QuartzCore 0x0000000111f253ff _ZN2CA11Transaction6commitEv + 475
18 UIKit 0x000000010ae477f0 _afterCACommitHandler + 346
19 CoreFoundation 0x000000010a28a267 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23
20 CoreFoundation 0x000000010a28a1d7 __CFRunLoopDoObservers + 391
21 CoreFoundation 0x000000010a26ef8e __CFRunLoopRun + 1198
22 CoreFoundation 0x000000010a26e884 CFRunLoopRunSpecific + 420
23 GraphicsServices 0x0000000111e59a6f GSEventRunModal + 161
24 UIKit 0x000000010ae1cc68 UIApplicationMain + 159
25 kashanmap 0x0000000108bd0fcf main + 111
26 libdyld.dylib 0x000000010e10f68d start + 1
27 ??? 0x0000000000000001 0x0 + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)

第一个 Collection View :collection_options

第二个 Collection View :collection_contactus

自定义单元格类别:

class CellContactUsCollectionViewCell: UICollectionViewCell {

@IBOutlet weak var img_view_cell_contact_us: UIImageView!

@IBOutlet weak var label_view_cell_contact_us: UILabel!

}

enter image description here

enter image description here

我的全类同学:

import UIKit
import ImageSlideshow

class ContentAJobViewController: UIViewController , UICollectionViewDataSource, UICollectionViewDelegate{

@IBOutlet weak var image_slider: ImageSlideshow!
var job_id = "0"
let db = DatabaseManager()
var jobs = [GlobalHelper]()
var job = GlobalHelper()


@IBOutlet weak var label_title: UILabel!

@IBOutlet weak var collection_options: UICollectionView!

@IBOutlet weak var collection_contactus: UICollectionView!


let reuseIdentifier = "cellContentAJob"
let reuseIdentifierContactUs = "cell_content_a_job_contact_us"

var item_options = [String]()
var item_contact_us = [GlobalHelper]()

override func viewDidLoad() {
super.viewDidLoad()

initialValues()
}

func initialValues()
{
db.openDatabase()

collection_options!.dataSource = self
collection_options!.delegate = self

collection_contactus!.dataSource = self
collection_contactus!.delegate = self


self.image_slider.contentScaleMode = UIViewContentMode.scaleAspectFill
jobs = db.getContentAJob(id: job_id)
job = jobs[0]

var arr_imgs = job.images.components(separatedBy: ",")
var images = [InputSource]()
for img in arr_imgs
{
let alamofireSource = AlamofireSource(urlString: img)!
images.append(alamofireSource)
}


self.image_slider.setImageInputs(images)

label_title.text = job.title

self.image_slider.bringSubview(toFront:label_title)


initialOptions()
//initialContactUs()
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}

func initialOptions()
{

self.image_slider.bringSubview(toFront:collection_options)



if(self.job.wifi == "1")
{
self.item_options.append("wififree")
}

if(self.job.apple_health == "1")
{
self.item_options.append("sib_noghrei")
}
if(self.job.wc == "1")
{
self.item_options.append("wc")
}

if(self.job.full_time == "1")
{
self.item_options.append("fulltime")

}

if(self.job.pos == "1")
{
self.item_options.append("pos")
}

if(self.job.parking == "1")
{
self.item_options.append("parking")
}


DispatchQueue.main.async{
self.collection_options.reloadData()

}


}

func initialContactUs()
{


}





// MARK: - UICollectionViewDataSource protocol

// tell the collection view how many cells to make
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {

if(collectionView == collection_options)
{
return self.item_options.count
}

if(collectionView == collection_contactus)
{
return 1 //return self.item_contact_us.count
}

return 0;

}

// make a cell for each cell index path
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {


var cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath as IndexPath) as! CellContentAJobCollectionViewCell
print("1")
if(collectionView == collection_options)
{
print("collection_options")
cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath as IndexPath) as! CellContentAJobCollectionViewCell

let image_name = self.item_options[indexPath.row]
cell.img_view_cell_options.image = UIImage(named: image_name as! String)

return cell
}

print("2")
if(collectionView == collection_contactus)
{
print("collection_contactus")
let cell1 = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifierContactUs, for: indexPath as IndexPath) as! CellContactUsCollectionViewCell

let image_name = "tele"//self.item_contact_us[indexPath.row].images
cell1.img_view_cell_contact_us.image = UIImage(named: image_name as! String)
cell1.label_view_cell_contact_us.text = "self.item_contact_us[indexPath.row].title"

return cell1
}
print("3")
return cell;



}



}

最佳答案

我将 collectionView 函数内的代码更改为:

if(collectionView == collection_options)
{


var cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath as IndexPath) as! CellContentAJobCollectionViewCell
cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath as IndexPath) as! CellContentAJobCollectionViewCell

let image_name = self.item_options[indexPath.row]
cell.img_view_cell_options.image = UIImage(named: image_name as! String)

return cell
}


else
{

print("collection_contactus")
let cell1 = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifierContactUs, for: indexPath as IndexPath) as! CellContactUsCollectionViewCell

let image_name = "tele"//self.item_contact_us[indexPath.row].images
cell1.img_view_cell_contact_us.image = UIImage(named: image_name as! String)
cell1.label_view_cell_contact_us.text = "self.item_contact_us[indexPath.row].title"



return cell1
}

关于ios - 无法使类型为 X 且标识符为 Y 的 View 出列(NSInternalInconsistencyException),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42675168/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com