我对我的应用程序有一种奇怪的反应。 我的应用程序在近10种不同的设备上运行良好,并且已通过测试并且已经在线。但是一个拥有iOS 5的iPhone 5s的朋友有一个问题。当他试图进入一个表视图时,我通过API调用alamofire和swiftyjson将项目附加到它上面。应用程序崩溃了。从crashlytics我得到这个奇怪的错误
Crashed: com.apple.main-thread
0 Events Near Me 0x1000a532c specialized listMapViewController.tableView(UITableView, cellForRowAtIndexPath : NSIndexPath) -> UITableViewCell (listMapViewController.swift:196)
1 Events Near Me 0x1000a3c94 @objc listMapViewController.tableView(UITableView, cellForRowAtIndexPath : NSIndexPath) -> UITableViewCell (listMapViewController.swift)
2 UIKit 0x18a37220c -[UITableView _createPreparedCellForGlobalRow:withIndexPath:willDisplay:] + 688
3 UIKit 0x18a372364 -[UITableView _createPreparedCellForGlobalRow:willDisplay:] + 80
4 UIKit 0x18a3617b8 -[UITableView _updateVisibleCellsNow:isRecursive:] + 2440
5 UIKit 0x18a376f0c -[UITableView _performWithCachedTraitCollection:] + 104
6 UIKit 0x18a10f22c -[UITableView layoutSubviews] + 176
7 UIKit 0x18a01f7ac -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 644
8 QuartzCore 0x18981eb58 -[CALayer layoutSublayers] + 148
9 QuartzCore 0x189819764 CA::Layer::layout_if_needed(CA::Transaction*) + 292
10 QuartzCore 0x189819624 CA::Layer::layout_and_display_if_needed(CA::Transaction*) + 32
11 QuartzCore 0x189818cc0 CA::Context::commit_transaction(CA::Transaction*) + 252
12 QuartzCore 0x189818a08 CA::Transaction::commit() + 512
13 QuartzCore 0x1898120f8 CA::Transaction::observer_callback(__CFRunLoopObserver*, unsigned long, void*) + 80
14 CoreFoundation 0x184a47bd0 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 32
15 CoreFoundation 0x184a45974 __CFRunLoopDoObservers + 372
16 CoreFoundation 0x184a45da4 __CFRunLoopRun + 928
17 CoreFoundation 0x184974ca0 CFRunLoopRunSpecific + 384
18 GraphicsServices 0x18fbb0088 GSEventRunModal + 180
19 UIKit 0x18a08cffc UIApplicationMain + 204
20 Events Near Me 0x100095eec main (AppDelegate.swift:15)
21 libdyld.dylib 0x199da28b8 start + 4
在第196行中,这是代码
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! locationEventsTableViewCell
var dict = arrRes[indexPath.row]
cell.eventTitle.text = dict["eventName"] as? String //here is the issue
所以要向您解释一下,使用此应用程序,您可以根据自己的位置获得附近的一些活动。如果没有事件有消息我有保护。但是我们离开了几个街区,我可以通过cell.eventTitle来获取活动......但是我朋友的iPhone崩溃了。
有什么想法吗?
P.S。我现在正在将iOS 9.1下载到我的模拟器中。 iPhone 5的另一位朋友没有这个问题。
答案 0 :(得分:1)
正如你所说其他iphone没有出现这个问题我假设你的朋友的iphone可能是从应用程序或其他任何东西超载而且它没有及时获取json变量! 所以我建议首先使用if语句来避免这样的错误:
if dict["eventName"] as? String != nil {
cell.eventTitle.text = dict["eventName"] as? String
}
如果你想在下次更新中使用,可以使用完成来重新加载tableView数据。
希望它有所帮助。