2012-07-09 58 views
1

比较在我Array 1,我加载图片来自NSDocumentDirectory,我装它们,并添加一个NSMutableDictionary与NSMutableArray的

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

    NSString *savedImagePath = [documentsDir stringByAppendingPathComponent:[NSString stringWithFormat:@"Images%d.png", i]]; 
    if([[NSFileManager defaultManager] fileExistsAtPath:savedImagePath]){ 
     NSMutableDictionary *container = [[NSMutableDictionary alloc] init]; 
     [container setObject:[UIImage imageWithContentsOfFile:savedImagePath] forKey:@"image"]; 
     [container setObject:[NSNumber numberWithInt:i] forKey:@"index"]; 
     [images addObject:container]; 
    } 
} 

在我的其他阵列Array 2,我装他们的应用程序。

self.images = [NSMutableArray arrayWithObjects: 
        @"01.jpg",@"02.jpg",@"03.jpg",@"04.jpg",@"05.jpg",@"06.jpg",@"07.jpg",nil]; 

我能字符串添加到Array 2这样的:

for (int x=1; x<8;x++) { 
    // add as NSString 
    [images addObject:[NSString stringWithFormat:@"%d", x]]; 

    } 

,并能够比较Array 2这样的:

NSInteger index = carousel.currentItemIndex; 
    if ([[images objectAtIndex:index] intValue] == 1){ 

我想做的事,就是做它到Array 1。 我知道Array 1已添加NSNumber,但我有点新NSMutableDictionary所以我不能这样做与Array 2相同。

是否可以像我的Array 2一样做,或者其他方式是什么?

感谢您的帮助。

+0

你正在添加字典作为一个对象数组,看我的答案.. – Charan 2012-07-09 06:25:49

回答

3

其实这里有字典的数组,因为你将其与键image两个对象和index

所以字典,用于检索字典的阵列,

只需登录一下,看看会发生什么

编辑2.0

for(int i=0; i< [images count]; i++){ 
    NSNumber *num =[[images objectAtIndex:i] objectForKey:@"index"]; 

    int index = [num intValue]; 

    NSLog(@"%d",index) 
} 
+0

其在调试器中的值是(空) – Bazinga 2012-07-09 06:27:29

+0

我的不好,我已经给出了键值**值**。现在我已经编辑了,保留键值为**索引** – Charan 2012-07-09 06:28:53

+0

是,已经有改变它。其索引记录日志。但如何像上面提到的那样比较它。我有点困惑于这个字典。 – Bazinga 2012-07-09 06:29:46