NSNumber numberWithInt: возвращает странные числа? - PullRequest
2 голосов
/ 20 января 2010

Я только начинаю с Core Data и столкнулся с проблемой, когда мне нужно сохранить новый объект с соответствующим идентификатором.

Я пытаюсь добавить следующий номер в строке в качестве идентификатора объекта, добавляемого пользователем:

NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:[NSEntityDescription entityForName:@"Favorites" inManagedObjectContext:managedObjectContext]];
[request setIncludesSubentities:NO];
NSError *err;
NSUInteger count = [managedObjectContext countForFetchRequest:request error:&err];

NSManagedObjectContext *context = [fetchedResultsController managedObjectContext];
NSEntityDescription *entity = [[fetchedResultsController fetchRequest] entity];
NSManagedObject *newManagedObject = [NSEntityDescription insertNewObjectForEntityForName:[entity name] inManagedObjectContext:context];

[newManagedObject setValue:[NSNumber numberWithInt:count] forKey:@"favoritesID"];

Если я тогда пойду и получу значениеForKey: @ "favourID", я получу что-то вроде "81933072", что неправильно.

Я проверил count, и это правильное число, только когда я помещаю его в Core Data, оно становится чем-то другим. favoriteID это int16 между прочим.

1 Ответ

9 голосов
/ 20 января 2010

valueForKey: вернет NSNumber, а не целое число.Вам нужно позвонить [myNumber integerValue].

Редактировать: То есть вы назначаете NSNumber для int16?Это не сработает.Вам следует изменить тип переменной.

...