Храните и извлекайте UIColor из Core Data, используя swift 5 - PullRequest
0 голосов
/ 31 мая 2019

Частично устарели ответы на следующие вопросы: Хранение объекта UIColor в базовых данных и Лучший способ сохранить и извлечь UIColors в базовые данные .

1) «unarchiveObject (with :)» устарел в iOS 12.0: используйте + unarchivedObjectOfClass: fromData: error: вместо

2) «archivedData (withRootObject :)» устарел в iOS 12.0: использовать + archivedDataWithRootObject: требуетсяSecureCoding: ошибка: вместо

extension UIColor 
{
   class func color(withData data:Data) -> UIColor 
   { return NSKeyedUnarchiver.unarchiveObject(with: data) as! UIColor }

   func encode() -> Data 
   { return NSKeyedArchiver.archivedData(withRootObject: self) }
}

Пытаясь следовать инструкциям и документации компилятора, я не могу избавиться от ошибок. Может ли кто-нибудь уточнить правильный эквивалент для вышеуказанных методов расширения в Swift 5?

1 Ответ

1 голос
/ 31 мая 2019

Попробуйте следующее для Swift 5

extension UIColor {

     class func color(data:Data) -> UIColor? {
          return try? NSKeyedUnarchiver.unarchiveTopLevelObjectWithData(data) as? UIColor
     }

     func encode() -> Data? {
          return try? NSKeyedArchiver.archivedData(withRootObject: self, requiringSecureCoding: false)
     }
}
...