Волшебным записям не удалось вставить данные для атрибутов трансформируемого типа
После преобразования нашей базы кода в Swift 4.2 мы получили сбой при установке значения для атрибутов типа "двоичные данные". Я обновил атрибуты до "Преобразуемый тип", но он не вставляет данные в БД.
Ошибка, когда тип данных был двоичными данными: "требуемый тип NSData заданного типа __NSDictionary error"
{
var modelValue: (value: Any?, defaultValue: Any?)
if value is Array<Any>,
let tempValue = value as? [String] {
modelValue = (tempValue.joined(separator:","),
DBManagedObject.DefaultValues.defaultDateValue as AnyObject?)
} else {
switch attribute.attributeType {
case .integer16AttributeType,
.integer32AttributeType,
.integer64AttributeType,
.decimalAttributeType,
.doubleAttributeType,
.floatAttributeType:
fallthrough
case .booleanAttributeType:
modelValue = numberValueForAttribute(value: value)
case .stringAttributeType:
modelValue = stringValueForAttribute(value: value)
case .dateAttributeType:
let defaultDateFormat = TBManagedObject.DefaultValues.defaultDateFormatString
let dateFormat = (model as? ParserDateDelegate)?.dateFormatString ?? defaultDateFormat
modelValue = dateValueForAttribute(value: value, dateFormat: dateFormat)
default:
modelValue = (value, nil)
}
}
if modelValue.value != nil {
model.setValue(modelValue.value, forKey: attribute.name)
} else {
if model.value(forKey: attribute.name) == nil {
model.setValue(modelValue.defaultValue, forKey: attribute.name)
}
}
}