Преобразовать хеш в NSNumberWithInt не соответствует? - PullRequest
0 голосов
/ 25 января 2012

Я храню хеш-значение объекта в качестве уникального идентификатора в этом объекте, например:

[myObj setValue:[NSNumber numberWithInt:[myObj hash]] forKey:@"ID"];

Но при получении значения для этого ключа значение больше не согласуется с хешемэтот код:

NSLog(@"[myObj hash] %i",[myObj hash]);
NSLog(@"[myObj hash] NSNumber %@",[NSNumber numberWithInt:[myObj hash]]);
[myObj setValue:[NSNumber numberWithInt:[myObj hash]] forKey:@"ID"];
NSLog(@"myObj ID %@",[myObj valueForKey:@"ID"]);

Создает вывод, подобный следующему:

[myObj hash] -976941568
[myObj hash] NSNumber -976941568
myObj ID 3584

Какие основные вещи о хэш-парах и / или парах ключ / значение я явно не понимаю?

Томпсон

[РЕДАКТИРОВАТЬ]

Простите мои манеры новичка!myObj является NSManagedObject и соответствует ключу / значению, поэтому ID - это просто ключ, который я создаю на лету.

1 Ответ

1 голос
/ 25 января 2012

Метод хеша возвращает целое число без знака, попробуйте вместо этого

[NSNumber numberWithUnsignedInteger:[myObj hash]];
...