Crashlytics дает мне следующий стек. Авария происходит непоследовательно. Случается на всех устройствах iOS 9, но очень редко. Не удалось выяснить источник проблемы. Не произошло ни на одном из устройств, которые у меня были, пытался сбой в течение последних 3 дней.Swift Specialized Crash on UICollectionView cellForItemAtIndexPath
Crashed: com.apple.main-thread
0 cherish 0x10014ee18 specialized PersonalizeViewController.collectionView(UICollectionView, cellForItemAtIndexPath : NSIndexPath) -> UICollectionViewCell (PersonalizeViewController.swift:159)
1 cherish 0x1001497f0 @objc PersonalizeViewController.collectionView(UICollectionView, cellForItemAtIndexPath : NSIndexPath) -> UICollectionViewCell (PersonalizeViewController.swift)
2 UIKit 0x188aef3a8 <redacted> + 432
3 UIKit 0x188311adc <redacted> + 4628
4 UIKit 0x18830c808 <redacted> + 228
5 UIKit 0x1882a81e4 <redacted> + 656
6 QuartzCore 0x185c3a994 <redacted> + 148
7 QuartzCore 0x185c355d0 <redacted> + 292
8 QuartzCore 0x185c35490 <redacted> + 32
9 QuartzCore 0x185c34ac0 <redacted> + 252
10 QuartzCore 0x185c34820 <redacted> + 500
11 QuartzCore 0x185c2dde4 <redacted> + 80
12 CoreFoundation 0x183104728 <redacted> + 32
13 CoreFoundation 0x1831024cc <redacted> + 372
14 CoreFoundation 0x1831028fc <redacted> + 928
15 CoreFoundation 0x18302cc50 CFRunLoopRunSpecific + 384
16 GraphicsServices 0x184914088 GSEventRunModal + 180
17 UIKit 0x188316088 UIApplicationMain + 204
18 cherish 0x100142a50 main (AppDelegate.swift:19)
19 libdispatch.dylib 0x182bca8b8 (Missing)
код, где он выходит из строя является:
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
if collectionView.tag == 1 {
(---crash line---) let cell = select_date_collection_view.dequeueReusableCellWithReuseIdentifier(PERSONALIZE_SELECT_DATE_COLLECTION_CELL_IDENTIFIER, forIndexPath: indexPath) as! SelectDateCollectionViewCell
// Some changes to cell objects
return cell
} else if collectionView.tag == 2 {
let cell = select_time_collection_view.dequeueReusableCellWithReuseIdentifier(PERSONALIZE_SELECT_TIME_COLLECTION_CELL_IDENTIFIER, forIndexPath: indexPath) as! SelectTimeCollectionViewCell
// Some changes to cell objects
return cell
} else if collectionView.tag == 3 {
let cell = add_customization_collection_view.dequeueReusableCellWithReuseIdentifier(PERSONALIZE_ADD_CUSTOMIZATION_COLLECTION_CELL_IDENTIFIER, forIndexPath: indexPath) as! AddCustomizationCollectionViewCell
// Some changes to cell objects
return cell
}
let cell: UICollectionViewCell = UICollectionViewCell()
return cell
}
настроит все представления коллекции в viewDidLoad()
select_date_collection_view.registerNib(UINib(nibName: "SelectDateCollectionViewCell", bundle: nil), forCellWithReuseIdentifier: PERSONALIZE_SELECT_DATE_COLLECTION_CELL_IDENTIFIER)
select_date_collection_view.tag = 1
select_date_collection_view.dataSource = self
select_date_collection_view.delegate = self
select_date_collection_view.showsHorizontalScrollIndicator = false
select_date_collection_view.showsVerticalScrollIndicator = false
select_date_collection_view.reloadData()
select_time_collection_view.registerNib(UINib(nibName: "SelectTimeCollectionViewCell", bundle: nil), forCellWithReuseIdentifier: PERSONALIZE_SELECT_TIME_COLLECTION_CELL_IDENTIFIER)
select_time_collection_view.tag = 2
select_time_collection_view.dataSource = self
select_time_collection_view.delegate = self
select_time_collection_view.showsHorizontalScrollIndicator = false
select_time_collection_view.showsVerticalScrollIndicator = false
hideSelectTimeView()
add_customization_collection_view.registerNib(UINib(nibName: "AddCustomizationCollectionViewCell", bundle: nil), forCellWithReuseIdentifier: PERSONALIZE_ADD_CUSTOMIZATION_COLLECTION_CELL_IDENTIFIER)
add_customization_collection_view.tag = 3
add_customization_collection_view.dataSource = self
add_customization_collection_view.delegate = self
add_customization_collection_view.showsHorizontalScrollIndicator = false
add_customization_collection_view.showsVerticalScrollIndicator = false
hideCustomizationsView()
ошибка происходит непоследовательно, которая является одной из основных причин для беспокойства , Поскольку я не могу понять, что не так, и журналы сбоев от itunes или Crashlytics не помогают.
Вы разместили коллекцию на супервизии, прежде чем заполнять ее содержимым (перезагрузка данных)? – slava
виды коллекций были определены в построителе интерфейса –