EXC_BREAKPOINT由于转换错误

时间:2019-05-08 17:36:05

标签: ios swift exception

在检查Crashlytics报告的问题时,以下行似乎出现EXC_BREAKPOINT错误:

self.caloriesFor100 = Int((cartFood.nbCalories.floatValue / 100) * cartFood.quantite.floatValue)
  • caloriesFor100是Int
  • cartFood.nbCalories是一个NSNumber,应该具有浮点值。
  • cartFood.quantite也是应该具有浮点值的NSNumber

我没有成功重现该问题。可能导致此代码EXC_BREAKPOINT的原因?

完整堆栈跟踪:

Crashed: com.apple.main-thread
0  LSDP                           0x10269ccbc specialized CartFoodModelinit(_:) (CartFoodModel.swift:88)
1  LSDP                           0x10268a570 specialized CartFoodCell.cartFoodObjc (CartFoodModel.swift)
2  LSDP                           0x102689600 @objc CartFoodCell.cartFoodObjc (<compiler-generated>)
3  LSDP                           0x102664c7c -[PanierDuJourViewController tableView:cellForRowAtIndexPath:] (PanierDuJourViewController.m:156)
4  UIKit                          0x18bf10148 -[UITableView _createPreparedCellForGlobalRow:withIndexPath:willDisplay:] + 668
5  UIKit                          0x18bf0fe00 -[UITableView _createPreparedCellForGlobalRow:willDisplay:] + 80
6  UIKit                          0x18bf0eb1c -[UITableView _updateVisibleCellsNow:isRecursive:] + 2280
7  UIKit                          0x18bf0a668 -[UITableView layoutSubviews] + 140
8  UIKit                          0x18be47770 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 1420
9  QuartzCore                     0x1863e925c -[CALayer layoutSublayers] + 184
10 QuartzCore                     0x1863ed3ec CA::Layer::layout_if_needed(CA::Transaction*) + 324
11 QuartzCore                     0x186359aa0 CA::Context::commit_transaction(CA::Transaction*) + 320
12 QuartzCore                     0x1863815d0 CA::Transaction::commit() + 580
13 UIKit                          0x18c22054c _UIApplicationFlushRunLoopCATransactionIfTooLate + 172
14 UIKit                          0x18c7fd4c0 __handleEventQueueInternal + 5520
15 UIKit                          0x18c7f6258 __handleHIDEventFetcherDrain + 152
16 CoreFoundation                 0x18221b404 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 24
17 CoreFoundation                 0x18221ac2c __CFRunLoopDoSources0 + 276
18 CoreFoundation                 0x18221879c __CFRunLoopRun + 1204
19 CoreFoundation                 0x182138da8 CFRunLoopRunSpecific + 552
20 GraphicsServices               0x18411b020 GSEventRunModal + 100
21 UIKit                          0x18c11978c UIApplicationMain + 236
22 LSDP                           0x1025fce28 main (main.m:16)
23 libdyld.dylib                  0x181bc9fc0 start + 4

2 个答案:

答案 0 :(得分:0)

如果NSNumber属性为nil,则可能会捕获此异常。因此,也许最好将nbCalories更改为选项值。

答案 1 :(得分:0)

我发现了类似的问题及其解决方法here
由于您的应用在tableView:cellForRowAtIndexPath:时崩溃,因此该单元格可能会显示一个不再存在的表(CartFoodCell.cartFoodObjc)条目。
但是如果没有更多代码,这只是一个猜测。请仔细检查您的代码。