1

我将我的数组加载到NSDocumentDirectory

self.images = [NSMutableArray new];  
for(int i = 0; i <= 100; i++) 
{ 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDir = [paths objectAtIndex:0];

    NSString *savedImagePath = [documentsDir stringByAppendingPathComponent:[NSString stringWithFormat:@"oneSlotImages%d.png", i]]; 
    NSLog(@"savedImagePath=%@",savedImagePath);
    if([[NSFileManager defaultManager] fileExistsAtPath:savedImagePath]){ 
        [images addObject:[UIImage imageWithContentsOfFile:savedImagePath]]; 

        NSLog(@"file exists");
    } 
    NSLog(@"file does not exist");
} 

NSLog(@"Count : %d", [images count]);  

这是我实现数组的地方:

- (UIView *)carousel:(iCarousel *)_carousel viewForItemAtIndex:(NSUInteger)index reusingView:(UIView *)view
{

    view = [[UIImageView alloc] initWithImage:[images objectAtIndex:index]];
    return view;

}

我在NSInteger上面的数组中添加了viewDidLoad

for (int x=0; x<+100;x++) {
        // add as NSString
        [images addObject:[NSString stringWithFormat:@"%d", x]];
        // add as NSNumber
        //[images addObject:[NSNumber numberWithInt:x]];
}

我无法添加NSInteger. 如何添加NSIntegerNSMutableArray?

我有一个崩溃:

012-06-04 16:25:19.064 Yens_PhotoSlot[7543:1a303] -[__NSCFNumber size]: unrecognized selector sent to instance 0x9a49b20 2012-06-04 16:25:19.067 Yens_PhotoSlot[7543:1a303] * Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFNumber size]: unrecognized selector sent to instance 0x9a49b20' * First throw call stack: (0x1ab6052 0x1e92d0a 0x1ab7ced 0x1a1cf00 0x1a1cce2 0x7dbc86 0x2bc4b 0xaadc 0xaefc 0xb6f7 0xf04f 0xa348 0xbddf 0x27cc7 0x7bafbf 0x7bb2d4 0x7bb5d7 0x7bb785 0x9d827c 0x797c92 0x7979a2 0x799a98 0x724499 0x724584 0x139ee00 0x199f4f0 0x19ed833 0x19ecdb4 0x19ecccb 0x32e1879 0x32e193e 0x6f3a9b 0x2efd 0x2e65 0x1) terminate called throwing an exception

4

3 回答 3

16

Use NSNumber:

[yourMutableArray addObject:[NSNumber numberWithInt:yourIntValue]];
于 2012-06-04T08:24:42.483 回答
3

Add NSNumber:

[images addObject:[NSNumber numberWithInt:someInt];
于 2012-06-04T08:25:27.257 回答
2

NSInteger isn't an object -- it's simply typecast to int on 32-bit or long on 64-bit. Since NSMutableArray can only store objects, you need to wrap the integer into an object before you can store it.

于 2012-06-04T08:37:06.127 回答