2017-01-22 7 views
0

Im пытаюсь отправить ответ без определенных полех и RestKit до сих пор хранит настройки значения до нуля, даже после того, как я отключил эту опцию с помощью:Игнорирование значения по умолчанию для пропущенных элементов вместо установки нуля с RestKit

infoMapping.assignsDefaultValueForMissingAttributes = NO; 

Полный код отображения:

RKEntityMapping *infoMapping = [RKEntityMapping mappingForEntityForName:@"IndexInfo" inManagedObjectStore:managedObjectStore]; 
    //userMapping.identificationAttributes = @[@"id"]; 
    [infoMapping addAttributeMappingsFromDictionary:@{ 
                 @"first" : @"first", 
                 @"last" : @"last" 
                 }]; 

    infoMapping.assignsDefaultValueForMissingAttributes = NO; 

RKResponseDescriptor *infoResponseDescriptor = 
    [RKResponseDescriptor responseDescriptorWithMapping:infoMapping 
               method:RKRequestMethodGET 
              pathPattern:@"/core/feed.json" 
               keyPath:@"info" 
              statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful) 

мне действительно нужно, чтобы быть в состоянии реагировать с частичными данными, если это ошибка есть другой способ вокруг него, чтобы зацепить отображение, чтобы отключить его вручную?

ответ

0

Получается, что каждый раз для создания infoMapping создавалось новое сущность.

Таким образом, обходной путь iv включал атрибут id для ответа, отображал это дополнение и использовал его как идентификатор идентификации. Это, вероятно, не лучшее решение, но оно работает пока. (Так что мой идентификатор всегда 0 в моем ответе)

Я также включил некоторые проверки в мою модель IndexInfo.

infoMapping.identificationAttributes = @[@"id"]; 
    [infoMapping addAttributeMappingsFromDictionary:@{ 
                 @"id" : @"id", 
                 @"first" : @"first", 
                 @"last" : @"last" 
                 }]; 

проверки:

- (BOOL)validateFirst:(id *)ioValue error:(NSError **)outError { .... 

Я также необходимо:

infoMapping.performsKeyValueValidation = YES; 
infoMapping.discardsInvalidObjectsOnInsert = YES; 

Вместо

// infoMapping.assignsDefaultValueForMissingAttributes = NO; 

Идентификатор не всегда используется так I'l выяснить более элегантный способ и ответ на обновление.

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

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