在iPhone应用程序上的Wierd Crash

时间:2016-07-29 22:08:23

标签: ios swift swift2

我对我的应用程序有一种奇怪的反应。 我的应用程序在近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的另一位朋友没有这个问题。

1 个答案:

答案 0 :(得分:1)

正如你所说其他iphone没有出现这个问题我假设你的朋友的iphone可能是从应用程序或其他任何东西超载而且它没有及时获取json变量! 所以我建议首先使用if语句来避免这样的错误:

if dict["eventName"] as? String != nil {
cell.eventTitle.text = dict["eventName"] as? String  
}

如果你想在下次更新中使用,可以使用完成来重新加载tableView数据。

希望它有所帮助。