2012-07-24 92 views
0

行,所以我填充數組是這樣的:空NSMutableArray裏,不知道爲什麼

NSMutableArray *participants; 
for(int i = 0; i < sizeofpm; i++){ 
     NSDictionary *pmpart_dict = [pm_participants objectAtIndex:i]; 
     NSString *pmpart_email = [pmpart_dict objectForKey:@"email"]; 
     NSString *pmpart_email_extra = [@"pm" stringByAppendingString:pmpart_email]; 
     [participants setValue:pmpart_email forKey:pmpart_email_extra]; 
     NSLog(@"%@", participants); 
    } 

sizeofpm是1,即使用計數。獲取數組中的值的數量。我如何將值存儲到該數組?它似乎沒有工作。謝謝!

回答

2

需要先ALLOC它。嘗試的第一行更改爲:

NSMutableArray* participants = [[NSMutableArray alloc] init];

也使用與NSMutableArraysetValue:forKey:不會工作作爲數組沒有密鑰。

嘗試使用[participants addObject:pmpart_email];

+2

我錯過了,你錯過了的setValue形式的字典:!在我們之間,我們已經涵蓋了它。 – jrturton 2012-07-24 13:54:16

+0

你們很棒.. <3謝謝! – jimbob 2012-07-24 15:25:56

2

不創建數組,你只需要聲明它。

NSMutableArray *participants = [NSMutableArray array]; 

之後,setValue:forKey:不會將對象添加到數組。您需要addObject:

[participants addObject:pmpart_email]; 

沒有關鍵。

1

要分配怎麼樣,你賦值給一個NSDictionary對象的值到NSMutableArray *participants。要將值分配給NSMutableArray,您可以撥打- (void)addObject:(id)anObject

0

因此,我作爲其他答案中的一些人指出,您缺少participants的初始值設定項。但是,您使用的setValue:forKey:判斷,以及如何你似乎是結構化數據,你不找NSMutableArray,而是NSMutableDictionary。數組只是列表,而字典則保持鍵值關係,您似乎試圖利用這些關係。

試試這個:

// some classes provide shorthand for `alloc/init`, such as `dictionary` 
NSMutableDictionary *participants = [NSMutableDictionary dictionary]; 
for(int i = 0; i < sizeofpm; i++){ 
    NSDictionary *pmpart_dict = [pm_participants objectAtIndex:i]; 
    NSString *pmpart_email = [pmpart_dict objectForKey:@"email"]; 
    NSString *pmpart_email_extra = [@"pm" stringByAppendingString:pmpart_email]; 
    [participants setValue:pmpart_email forKey:pmpart_email_extra]; 
    NSLog(@"%@", participants); 
} 

這會給你的

{ 
    pmpart_email_extra: pmpart_email 
} 
相關問題