2016-05-29 7 views
5

Crashlyticsでクラッシュレポートを理解できない。サンククラッシュに部分的に適用されます。

これは、クラッシュログです:

Crashed: com.apple.main-thread 
0 Rekindlr      0x10007a728 ViewController.(user_info(Match?, completionHandler : (Bool?) ->()) ->()).(closure #1) (ViewController.swift:201) 
1 Alamofire      0x100156678 partial apply for thunk (ResponseSerialization.swift) 
2 Alamofire      0x10015891c specialized Request.(response<A where ...> (queue : OS_dispatch_queue?, responseSerializer : A, completionHandler : (Response<A.SerializedObject, A.ErrorObject>) ->()) -> Self).(closure #1).(closure #1) (ResponseSerialization.swift:131) 
3 libdispatch.dylib    0x1827614bc _dispatch_call_block_and_release + 24 
4 libdispatch.dylib    0x18276147c _dispatch_client_callout + 16 
5 libdispatch.dylib    0x182766b84 _dispatch_main_queue_callback_4CF + 1844 
6 CoreFoundation     0x182cccdd8 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12 
7 CoreFoundation     0x182ccac40 __CFRunLoopRun + 1628 
8 CoreFoundation     0x182bf4d10 CFRunLoopRunSpecific + 384 
9 GraphicsServices    0x1844dc088 GSEventRunModal + 180 
10 UIKit       0x187ec9f70 UIApplicationMain + 204 
11 Rekindlr      0x10007d4e4 main (AppDelegate.swift:17) 
12 libdispatch.dylib    0x1827928b8 (Missing) 

および関連ソース:

typealias CompletionHandler = (success: Bool) -> Void 


func user_info(match:(Match?), completionHandler:CompletionHandler) { 
    var tind_id = match!.tinder_id 
    var user_url = "\(USER_INFO_URL)\(tind_id)" 
    Alamofire.request(.GET, user_url, headers: ["X-Auth-Token": tinder_token], encoding: .JSON) 
     .responseJSON { response in 

      let json = JSON(response.result.value!) 

      var result = json["results"] 
      var distance = result["distance_mi"].intValue 

      let realm = try! Realm() 

      try! realm.write { 
       match?.distance_km = round(Double(distance)/0.62137) 
      } 

      completionHandler(success: true) 
    } 
} 

私は私がcompletionHandlerを使用していますどのように何かをやっている推測していますか?しかし、それは誰にも起こりません。私はクラッシュを再現することはできませんが、私のユーザーのうちのいくつかがそれを手に入れています。 @Uriと@mattの両方に同意

+4

即時容疑者は感嘆符です。 10行目で、値がnullでないことを確認してください。 –

+1

私は@UriBrecherに同意します。あなたは '試してください! 'と二回言います。それは "私を崩してください"という意味です。スウィフトがあなたに求めたことをやっても驚くことはありません。 – matt

答えて

2

- あなたは/キャッチ構文を知らない場合には、ここではそれらの行を実装する方法です。

do { 
    let realm = try Realm() 
    try realm.write { 
    match?.distance_km = round(Double(distance)/0.62137) 
    } 
}catch { 
    print(error) 
} 
関連する問題