2016-05-29 17 views
5

Gặp sự cố khi hiểu báo cáo sự cố trong Crashlytics.áp dụng một phần cho vụ đụng xe rác.

Đây là nhật ký sự cố:

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) 

Và nguồn liên quan:

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) 
    } 
} 

Tôi đoán tôi đang làm điều gì sai với cách tôi đang sử dụng completionHandler? Nhưng nó không xảy ra với tất cả mọi người. Tôi không thể tái tạo sự cố, nhưng một vài người dùng của tôi đang nhận được sự cố.

+4

Các nghi can ngay lập tức là những dấu chấm than. Tại dòng 10 đảm bảo rằng giá trị không bằng không –

+1

Tôi đồng ý với @UriBrecher. Bạn đang nói 'thử!' Hai lần. Điều đó có nghĩa là "làm ơn làm tôi thất vọng". Bạn khó có thể ngạc nhiên khi Swift làm những gì bạn yêu cầu. – matt

Trả lời

2

Đồng ý với cả hai @Uri và @ Matt - trong trường hợp bạn không biết cú pháp làm/catch, đây là cách những dòng cần được thực hiện:

do { 
    let realm = try Realm() 
    try realm.write { 
    match?.distance_km = round(Double(distance)/0.62137) 
    } 
}catch { 
    print(error) 
} 
Các vấn đề liên quan