2015-10-30 5 views
1

Я использую большую синхронизацию с HyperOslo, чтобы получить объект JSON из API:Карта многоуровневый объект JSON для NSManagedObject с Hyperolso синхронизации

JSON объект:

{"user": 
    {"name" : "damien", 
    "email" : "[email protected]", 
    "settings" : 
    { "notification" : "true", 
     "secretKey" : "dzadd7z5a7dzd5azd" 
    } 
    } 
} 

это мой Пользовательский объект, подклассифицирующий NSManagedObject. с собственными «настройками» в качестве пользовательского NSObject:

это выглядит невозможно! (? Если что-то знать об других рамках третьей стороны)

в the doc, решение будет использовать тип двоичных данных:

enter image description here

... но как построить поглотитель этого свойства в моя модель? (я знаю, что ниже геттер имеет никакого смысла):

@NSManaged var settings: Settings?{ 
    return [NSKeyedUnarchiver unarchiveObjectWithData:self.settings]; 
} 

ответ

2

строителя Рамочного советовал мне a good alternative solution:

Почему бы не просто создать новую таблицу основных данных, для нового объекта?

1 - Добавить объект в основных данных

enter image description here

2 - Создание NSManagedObject Подкласс для лица

class Setting: NSManagedObject { 
    @NSManaged var notification: Bool? 
    @NSManaged var notification: String? 
} 

3 - установить hyper.remoteKey = secretKey в информации пользователя.

Если JSON говорит "secret_key" Sync будет отображать его secretKey в ядре данных. Но если ваш JSON говорит «secretKey», он не знает, как преобразовать его в secretKey, потому что он делает только автоматические преобразования для snake_case. Поэтому, если вы хотите использовать secretKey со своего JSON, вам нужно сказать Синхронизировать это. Вы делаете это, добавляя hyper.remoteKey (ключ) и secretKey как значение в информации о пользователе.

enter image description here

3 - создать "настройки" отношения на пользователя (не забудьте добавить свойство в модели)

enter image description here

 Смежные вопросы

  • Нет связанных вопросов^_^