Crashlytics me donne la piletrace suivante. L'incident se produit de manière incohérente. Se produit sur tous les appareils iOS 9 mais très rarement. Impossible de comprendre la source du problème. N'a pas eu lieu sur l'un des appareils que j'ai essayé de planter au cours des 3 derniers jours.Crash spécialisé de Swift sur 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)
Le code où il plante est:
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
}
initialisé toutes les vues de collecte dans le 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()
L'erreur se produit incohérente qui est une cause de préoccupation majeure . Comme je suis incapable de comprendre ce qui ne va pas et les journaux de crash d'iTunes ou Crashlytics n'aident pas.
avez-vous placé la collection sur la vue d'ensemble avant de la remplir avec le contenu (données de rechargement)? – slava
des vues de collection ont été définies dans le constructeur d'interface –