2012-01-16 9 views
0

NSMutableArrayに数値を格納しようとしていますが、チェックするとすべてが無駄になります。私がチェックしたときNSMutableArrayにNSNutableが格納されています。

-(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、ちょうど様々なゴミ値のような値が返されます。

+0

問題ではありませんが、保存しているすべての番号が漏洩しています。 –

+0

良いキャッチ。リリース番号は? – Chris

+0

NSMutableSetを使用して重複したエントリを検出する方が効率的です(これがあなたの意図である場合)。 –

答えて

1

NSNumberオブジェクトのアドレスではなく、その値を印刷しています。 intValueをお試しください。または、オブジェクトを直接印刷する場合は%dではなく%@を使用してください。

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

は次のようになります
のNSLog(@ "ストアドた:%@"、[last100 objectAtIndex:I])。

NSNumberは整数ではないオブジェクトです。

+0

さらに、if(indexInt == [[last100 objectAtIndex:i] intValue]) 'にする必要があります。 –

関連する問題