簡體   English   中英

NSArray和NSDictionary

[英]NSArray and NSDictionary

我有一個NSDictionary,必須將其添加到NSArray中。 我該怎么做?

NSDictionary *row = [NSDictionary dictionaryWithObjectsAndKeys:
     [NSString stringWithFormat:@"%@",NSLocalizedString(@"no_favorites", nil)], @"Address", nil];

如果我使用:

    aFavorite = [row allValues];

如摘要所示,如果我打印出來,則會得到:

(
"No favorites added"
)

我需要的是:

  (
    {
    Address = "No favorites added";
 }
 )

因為我將使用:

NSDictionary* dict = [aFavorite objectAtIndex:[indexPath row]];
 NSString *contentForThisRow = [dict objectForKey:@"Address"];

dict值可以具有1個或2個鍵。

要轉換字典,可以使用它的方法:

myArray = [[NSArray alloc] initWithArray:[myDic allValues]];

更新

當您想添加dic以獲取dic並使用鍵獲取值時,請使用NSMutableArray如下所示:

NSMutableArray *myArray = [[NSMutableArray alloc] init];
[myArray addObject:myDic];

然后使用以下方法簡單地檢索dic:

NSDictionary *myDic = [myArray objectAtIndex:indexPath.row];
NSString *value = [myDic objectForKey:@"myValue"];

調用NSDictionary allValues函數,它將返回所有值的NSArray

NSArray *array = [row allValues];

要獲取NSArray的密鑰,請使用,

NSArray *array = [row allKeys];

參考鏈接: Apple Doc


多數民眾贊成在一個基本的編程邏輯與一些字符串的隱喻。 如果要“鍵值對”,則必須使用NSDictionary。 但是如果您要使用Address = Something則將所有鍵都放在一個數組中,並將所有值都放在另一個數組中,然后將它們循環成一個循環。

NSDictionary *row = [NSDictionary dictionaryWithObjectsAndKeys:
[NSString stringWithFormat:@"%@",NSLocalizedString(@"no_favorites", nil)], @"Address", nil];
[aFavorite addObject:row];

然后:

NSDictionary* dict = [aFavorite objectAtIndex:[indexPath row]];
NSString *contentForThisRow = [dict objectForKey:@"Address"];

我有一個NSDictionary,我必須將其添加到NSArray

如果您打算在運行時將NSDictionary添加到NSArray,那么您不能這樣做,因為NSArray是不可變的。

您是否要訪問所有值,然后嘗試:NSArray * values = [dictionary allValues];

如果訪問所有鍵,請嘗試:-NSArray * values = [dict allValues];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM