Probleme beim Verständnis eines Absturzberichts in Crashlytics.teilweise gelten für Thunk Crash.
Dies ist das Crash-Protokoll:
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)
und die damit verbundene Quelle:
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)
}
}
ich ich bin zu raten, tue etwas falsch mit, wie ich completionHandler verwende? Aber es passiert nicht jedem. Ich kann den Absturz nicht reproduzieren, aber ein paar meiner Benutzer bekommen es.
Die unmittelbar Verdächtigen die Ausrufungszeichen sind. Bei Zeile 10 stelle sicher, dass der Wert nicht null ist –
Ich stimme @UriBrecher zu. Du sagst zweimal "Versuch!" Das bedeutet "bitte crash me". Du kannst kaum überrascht sein, wenn Swift tut, was du verlangst. – matt