exc_arithmetic error with simulator only, assigning UICollectionView flowlayout

2.2k Views Asked by At

Im trying to assign a UICollectionViewFlowLayout to a UICollectionView and it runs fine on a physical device but simulators break, with a signal:

EXC_ARITHMETIC(code=EXC_i386_DIV, subcode=0x0)

This only happens on a simulator, it is my understanding that this is usually a division by 0 error, but I dont see how thats possible for my implementation

Code:

let flowLayout: UICollectionViewFlowLayout = UICollectionViewFlowLayout()

flowLayout.itemSize =  CGSizeMake(self.view.bounds.width * 0.67,
                                      self.collectionView!.frame.height - 10)

flowLayout.scrollDirection = UICollectionViewScrollDirection.Horizontal

self.collectionView!.collectionViewLayout = flowLayout

Furthermore, i get the signal at this line: self.collectionView!.collectionViewLayout = flowLayout

and the view bounds are : WIDTH: 277.38 HEIGHT: 75.0

Any help, or alternatives would be greatly appreciated!

2

There are 2 best solutions below

1
Ganzolo On

I got the exact same issue on a old code I am working on and it appears that I was calling this code from a wrong method. I moved it in more appropriate place, viewDidLoad or init and it works.

1
Nick Rostov On

Helped to call

reloadData

before

setCollectionViewLayout