Целое число для NSInteger и сохранение основных данных

У меня есть целое число с именем marbles, и я пытаюсь сохранить его в массиве, используя следующий код:

[records setValue:marbles forKey:@"marbles"];

С помощью этого кода я получаю предупреждение:

warning: Semantic Issue: Несовместимое целое число для преобразования указателя, отправляющего 'int' в параметр типа 'id'

Итак, как установить значение для NSInteger.

Следующий вопрос. Как повторно загрузить массив в основные данные? Я получаю массив, вношу изменения и как применить эти изменения к Core Data?

благодаря

4

3 ответы

Инициализируйте NSNumber (это то, что ожидает CoreData) с вашим целым числом:

NSNumber *marbleNumber = [NSNumber numberWithInt:marbles];
[records setObject:marbleNumber [email protected]"marbles"];

Или:

[records setMarbles:[NSNumber numberWithInt:marbles]];

Чтобы сохранить свои изменения, вы сохраняете свой контекст:

NSError *error;
[myManagedObjectContext save:&error];

//handle your error
14
добавлено

NSArrays будет принимать только объекты, поэтому первый шаг - превратить ваш NSInteger в NSNumber с помощью этого метода:

+ (NSNumber *)numberWithInt:(int)value

так:

NSNumber *myNumber = [NSNumber numberWithInt:marbles];

и тогда вы можете сделать:

[records setValue:myNumber forKey:@"marbles"];

Как правило, после получения данных вы получаете управляемый объект ObjectContext, считаете его чертежной доской, и любые изменения (включая добавление или удаление новых объектов), которые вы делаете для этих объектов, могут быть снова сохранены в CoreData, используя что-то вроде этого:

NSError *error;
        if (![context save:&error]) {
           //Update to handle the error appropriately.
            NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
            exit(-1); //Fail
        }

Где контекст - это контекст, который вы получите с помощью NSFetchedResultsController. Что вы можете сделать так:

NSManagedObjectContext *context = [fetchedResultsController managedObjectContext];

I would recommend taking a look at the Core Data programming guide

6
добавлено
- (id)primitiveValueForKey:(NSString *)key;    
- (void)setPrimitiveValue:(id)value forKey:(NSString *)key;

используйте NSNumber вместо значения (id)

0
добавлено
Mobile Dev Jobs — вакансии и аналитика
Mobile Dev Jobs — вакансии и аналитика
6 187 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению iOS, Android, Xamarin и т.д. ВАЖНО: Правила публикации и правила канала: Ссылка – https://telegra.ph/Pravila-oformleniya-vakansij-i-rezyume-11-09-2

iOS Developers — русскоговорящее сообщество
iOS Developers — русскоговорящее сообщество
2 400 участник(ов)

Общаемся на темы, посвященным iOS-разработке, Swift, Objective-C, SDK, Rx, Cocoa и т.д.