Я разрабатываю приложение iOS с помощью Swift. Приложение сосредоточено вокруг Apple Maps. Я новичок в разработке iOS. Я использую Fabric.io, чтобы бета-версию распространить приложение и получить отчеты о сбоях. Тем не менее, многие отчеты о сбоях, которые я получаю, не очень полезны. Иногда в отчетах о сбоях указывается только способ, в котором произошел сбой, но не дает мне подсказки, почему он разбился. Я пытаюсь понять, является ли это стандартным, или я должен переключиться на другую службу отчетов о сбоях.Unhelpful Swift отчеты о сбоях iOS
Вот пример таких отчетов о сбоях:
Crashed: com.apple.main-thread
EXC_BREAKPOINT UNKNOWN at 0x00000001000a68f8
Thread : Crashed: com.apple.main-thread
0 <APP NAME> 0x00000001000a68f8 <APP NAME>.MapViewController.(getMapAnnotations (<APP NAME>.MapViewController) -> (Swift.Double, long : Swift.Double) ->()).(closure #1).(closure #1) (MapViewController.swift)
1 <APP NAME> 0x00000001000a6570 <APP NAME>.MapViewController.(getMapAnnotations (<APP NAME>.MapViewController) -> (Swift.Double, long : Swift.Double) ->()).(closure #1).(closure #1) (MapViewController.swift)
2 libdispatch.dylib 0x0000000192ed13ac _dispatch_call_block_and_release + 24
3 libdispatch.dylib 0x0000000192ed136c _dispatch_client_callout + 16
4 libdispatch.dylib 0x0000000192ed5980 _dispatch_main_queue_callback_4CF + 932
5 CoreFoundation 0x00000001820f9fa4 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12
6 CoreFoundation 0x00000001820f804c __CFRunLoopRun + 1492
7 CoreFoundation 0x00000001820250a4 CFRunLoopRunSpecific + 396
8 GraphicsServices 0x000000018b1bf5a4 GSEventRunModal + 168
9 UIKit 0x0000000186956aa4 UIApplicationMain + 1488
10 <APP NAME> 0x00000001000f1914 main (AppDelegate.swift:16)
11 libdyld.dylib 0x0000000192efaa08 start + 4
Вот определение метода метода, где происходит ошибка:
func getAnnotations(lat: Double, long: Double){ // ignore the lat long arguments
var apiWrapper = apiWrapper()
apiWrapper.search(completionHandler: {(error: NSError?, mediaElements: [MediaElement]?) in
if error == nil {
dispatch_async(dispatch_get_main_queue(), {
self.myMapView!.removeAnnotations(self.myMapView!.annotations)
self.mediaAnnotations = []
for m in mediaElements! {
var annotation = CustomAnnotation(lat: m.lat,long: m.long, mediaTuple: (media.url, media.type))
self.mediaAnnotations.append(annotation)
}
self.reorganizeAnnotations(self.mediaAnnotations)
})
}
})
}
Почему бы вам просто не опубликовать код, который разбивает ваше приложение? –
Забыл об этом :) хотя мой вопрос заключается не столько в получении помощи для этой конкретной ошибки, сколько о том, почему отчет о сбое не очень полезен (то есть не сообщается номер строки, где произошел сбой или причина) – Anthony
По моему опыту, самой распространенной причиной этого сбоя является то, что у вас есть принудительное приведение ('foo as SomeClass'), но' foo' на самом деле не является классом. –