Swift 3-Как получить информацию о происхождении ошибки?

После сбоя моего приложения, я хотел бы получить информацию о происхождении, где произошла ошибка. В идеале я пытаюсь сделать что-то вроде следующего:

do {
    try obj.thatThrowsError()
} catch {
    print("Error on: line (error.lineNumber)")
    print("Col (error.column)")
    print("In file: (error.sourceFileName)")
    print(error.message)
}

Я понимаю, что по умолчанию эта информация недоступна. Что у меня есть что-то вроде:

struct CustomError: Error {
    let lineNumber: Int 
    // other vars here
}

А затем использовать его как:

let error = CustomError(/* initializes vars here */)

Но это много ручной работы, и если линия меняется, то это потребует ручных изменений. Есть ли способ сделать это, но очистить эти данные более динамично?

1 ответ

  1. вы можете использовать ткань, которая обеспечивает хороший Crashlytics, который говорит много информации о вашей аварии в том числе, какая линия(номер линии), какое устройство (iphone 5, iphone 6s),сколько пользователей получили аварии с каждого устройства, который раз, и многое другое с anlytics с хорошим пользовательским интерфейсом. Это совершенно бесплатно и может использовать как для iOS, так и для Android.