NSNumbers存储在NSMutableArray中

时间:2012-01-16 04:23:54

标签: objective-c arrays nsmutablearray

我正在尝试将数字存储在NSMutableArray中,但是当我检查它时,我得到的只是垃圾。

-(void)storeIntoArray:(int)indexInt
{
    NSNumber *indexNum = [[NSNumber alloc] initWithInt:indexInt];
    [last100 insertObject:indexNum atIndex:prevCount];
    prevCount++;

    if(prevCount > 100)
    {
        prevCount = 0;
        cycledOnce = YES;
    }

}

-(BOOL)checkArray:(int)indexInt
{
for(int i = 0;i < [last100 count];i++)
    {
        NSLog(@"Stored: %d",[last100 objectAtIndex:i]);
        if (indexInt == (int)[last100 objectAtIndex:i]) {
            NSLog(@"Same entry, trying again");
            return YES;
        }
    }
    return NO;
}

当我检查时,我会得到像Stored: 110577680这样的值以及各种垃圾值。

2 个答案:

答案 0 :(得分:1)

您正在打印NSNumber对象地址,而不是其值。尝试使用intValue。或者,如果要直接打印对象,请使用%@而不是%d

答案 1 :(得分:0)

NSLog(@"Stored: %d",[last100 objectAtIndex:i]);

应该是:
    NSLog(@“存储:%@”,[last100 objectAtIndex:i]);

NSNumber是一个非整数的对象。