The application is written in Swift 2.2 using Xcode 7.3.1.
I have UITableViewwith cells with UICollectionViewwith horizontal FlowLayout. When I scan the table up and down very quickly and not allowing it to stop on the device (iPad Air 2, iOS 9.3.2) or the simulator, the application crashes with
EXC_BAD_ACCESS
in AppDelegate.
The application does not hit the breakpoint set in the view controller for didReceiveMemoryWarning().
The code seems to fall on
[UICollectionViewData invalidateItemsAtIndexPaths:]
or
[_UIFlowLayoutSection computeLayoutInRect:forSection:invalidating:]
followed by
0_dispatch_barrier_async_f_slow.
The stack trace does not point me to any line of application code.
Trace of the console stack for the simulator (upon failure on the device, there is no trace of the stack stack):
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[_UIFlowLayoutItem frame]: unrecognized selector sent to class 0x110f9ecc0'
*** First throw call stack:
(
0 CoreFoundation 0x000000011259cd85 __exceptionPreprocess + 165
1 libobjc.A.dylib 0x00000001137d3deb objc_exception_throw + 48
2 CoreFoundation 0x00000001125a5c3d +[NSObject(NSObject) doesNotRecognizeSelector:] + 205
3 CoreFoundation 0x00000001124ebcfa ___forwarding___ + 970
4 CoreFoundation 0x000000011259e1f8 __forwarding_prep_1___ + 120
5 UIKit 0x0000000110b1d8b5 -[UICollectionViewData invalidateItemsAtIndexPaths:] + 273
6 UIKit 0x0000000110ae26b7 -[UICollectionView _invalidateWithBlock:] + 62
7 UIKit 0x0000000110ae2a6f -[UICollectionView _invalidateLayoutWithContext:] + 656
8 UIKit 0x0000000110af0ad9 -[UICollectionViewLayout invalidateLayoutWithContext:] + 189
9 UIKit 0x0000000110afe2cc -[UICollectionViewFlowLayout invalidateLayoutWithContext:] + 604
10 libdispatch.dylib 0x0000000114257d9d _dispatch_call_block_and_release + 12
11 libdispatch.dylib 0x00000001142783eb _dispatch_client_callout + 8
12 libdispatch.dylib 0x00000001142601ef _dispatch_main_queue_callback_4CF + 1738
13 CoreFoundation 0x00000001124f60f9 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 9
14 CoreFoundation 0x00000001124b7b99 __CFRunLoopRun + 2073
15 CoreFoundation 0x00000001124b70f8 CFRunLoopRunSpecific + 488
16 GraphicsServices 0x0000000114bcaad2 GSEventRunModal + 161
17 UIKit 0x000000011024cf09 UIApplicationMain + 171
18 market-touch 0x000000010d4cc472 main + 114
19 libdyld.dylib 0x00000001142ac92d start + 1
20 ??? 0x0000000000000001 0x0 + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
( ).
, -, , ?
EDIT:
Doro, cellForRowAtIndexPath:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier(customCellNibName, forIndexPath: indexPath) as! CustomTableViewCell
return cell
}
func setCollectionViewLayout(_ layout: UICollectionViewLayout, animated animated: Bool).
IB.
, . , :
-[NSIndexPath frame]: unrecognized selector sent to instance 0xc000000012de4890
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSIndexPath frame]: unrecognized selector sent to instance 0xc000000012de4890'
*** First throw call stack:
(0x1815f6db0 0x180c5bf80 0x1815fdc4c 0x1815fabec 0x1814f8c5c 0x186fcccc0 0x186f9e688 0x1868de558 0x1868da0a4 0x1869ae9ec 0x1024f9a7c 0x1024f9a3c 0x1024ff4e4 0x1815acd50 0x1815aabb8 0x1814d4c50 0x182dbc088 0x1867b6088 0x1000c9f58 0x1810728b8)
libc++abi.dylib: terminating with uncaught exception of type NSException
2:
CustomTableViewCell awakeFromNib() :
if let layout = collectionView.collectionViewLayout as? UICollectionViewFlowLayout {
layout.estimatedItemSize = CGSizeMake(50, 22)
}
, , ( ). , . : right vs .
IB, Flow View Collection β - 50x22. , , 22pt. :
override func preferredLayoutAttributesFittingAttributes(layoutAttributes: UICollectionViewLayoutAttributes) -> UICollectionViewLayoutAttributes {
let attributes = super.preferredLayoutAttributesFittingAttributes(layoutAttributes)
button.setTitle(symbol, forState: .Normal)
button.sizeToFit()
attributes.frame = button.frame
return attributes
}
, 22pt ( 50pt), . , , ?