Поток 1: EXC_BAD_ACCESS (код = 1, адрес = 0xc0e8b0e1910) - PullRequest
0 голосов
/ 29 ноября 2018

Сбой

нормально работает в Xcode 9.4.1 swift 3.x

После использования приложения Xcode 10 swift 3.x происходит сбой приложения objc_getAssociatedObject в кодефрагмент.

расширение String {

struct AssociatedKey {
    static var associatedFormatterKey: UInt8 = 0
}

var associatedDateFormatter: DateFormatter {
    get {
        if let formatter = objc_getAssociatedObject(self, &AssociatedKey.associatedFormatterKey) as? DateFormatter {
            return formatter
        } else {
            let formatter = DateFormatter()
            formatter.locale = Locale.serverFormatterLocale
            objc_setAssociatedObject(self, &AssociatedKey.associatedFormatterKey, formatter, .OBJC_ASSOCIATION_ASSIGN)
            return formatter
        }
    }
}}

После применения Zombie

Ошибка: [NSDateFormatter retain]: сообщение отправлено на освобожденный экземпляр 0x6000067a4630

Обходной путь: обновление политики objc_setAssociatedObject .OBJC_ASSOCIATION_ASSIGN до .OBJC_ASSOCIATION_RETAIN) работает нормально.

Хотелось бы узнать лучший обходной путь.

Любая помощь будет отличной.

Спасибо

...