Основные данные: Обновление массива. - PullRequest
0 голосов
/ 06 марта 2012

У меня есть объект модели базовых данных NoteObject с типом transformable arrayOfTags.В файле NoteObject.h, который является подклассом NSManagedObject, arrayOfTags объявлен как:

NSMutableArray *arrayOfTags;
@property (nonatomic, retain) NSMutableArray *arrayOfTags;
//.m
@dynamic arrayOfTags;

Проблема заключается в том, что изменения, внесенные в этот массив, не сохраняются. Кто-то предложил следующее в качестве решения:

Если существуют изменяемые и неизменяемые версии класса, которые вы используете для представления свойства, например NSArray и NSMutableArray, вы обычно должны объявлятьвозвращаемое значение метода доступа get как неизменяемого объекта, даже если внутри модели используется изменяемый объект.

Однако я не совсем уверен, что это значит.Как мне следовать этим инструкциям для моего дела?

Ответы [ 2 ]

1 голос
/ 06 марта 2012

Реализация функций доступа для Базовых данных зависит от вашей модели отношений. Этот документ должен помочь вам начать работу. Скорее всего, вы будете использовать эту настройку для вашего геттера:

- (NSArray*)data
{
    [self willAccessValueForKey:@"data"];
    NSArray* array = [[NSArray alloc] initWithArray:arrayOfTags copyItems:YES];
    [self didAccessValueForKey:@"data"];
    return array;
}

Обратите внимание, что приведенный выше фрагмент является лишь примером и должен быть изменен для вашего использования.

1 голос
/ 06 марта 2012

Даже если вы нашли обходной путь, попробуйте следующее:

[noteObject willChangeValueForKey:@"arrayOfTags"];

// make changes to noteObject.arrayOfTags

[noteObject didChangeValueForKey:@"arrayOfTags"];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...