Я столкнулся с очень странной проблемой. Я пытаюсь понять, что происходит. Проще говоря, я пытался вставить NSInteger в NSMutableArray. keys — это NSmutableArray. ключ имеет тип NSInteger.
[keys insertObject: [NSNumber numberWithInteger: key] atIndex:insPoint];
В консоли xcode. Я вижу ключ = (NSInteger) -1. поэтому тип - NSInteger, а значение -1. Однако, когда я запускаю приведенные выше коды и проверяю, что находится в ключах. Он показывает (_NSCFNumber *) long 7205759403792935. Если я изменил код на
[keys insertObject: [NSNumber numberWithInt: key] atIndex:insPoint];
Он правильно показывает (_NSCFNumber *) int -1. Я также пробовал NSLog с numberWithInt и numberWithInteger.
NSLog(@"%@",[NSNumber numberWithInteger: key]);
NSLog(@"%@",[NSNumber numberWithInt: key]);
Все они показывают -1. я тоже пробовал
NSInteger a=-2;
[keys insertObject: [NSNumber numberWithInteger: a] atIndex:insPoint];
#also have some wierd number, but it works for positive number
В чем проблема? Какие-либо предложения?
-1
, и насколько я понимаю, он неправильно читается, при сбросе содержимого массива в консоль. - person   schedule 21.11.2014