Волшебным записям не удалось вставить данные для атрибутов трансформируемого типа

После преобразования нашей базы кода в 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)
        }
    }
}

0 ответов

Другие вопросы по тегам