将NSDictionary中的特定元素添加到NSArray

时间:2014-10-26 21:02:09

标签: ios swift nsarray nsdictionary

所以我有这个NSDictionary itemsDict(在Swift中):

var itemsDict : NSDictionary = [:] // Dictionary
var Sections : NSArray = [] // Array

itemsDict = [
["News"]:["a":"www.hello.co.uk","b":"www.hello.com"],
["Sport"]:["c":"www.hello.co.uk","d":"www.hello.com"],
    ]

    print (itemsDict)

这就是字典结构的样子:

{
        (
        News
    ) =     {
        a = "www.hello.co.uk";
        b = "www.hello.com";
    };
        (
        Sport
    ) =     {
        c = "www.hello.co.uk";
        d = "www.hello.com";
    };
}

从上面的字典中我希望能够只使用 - 填充NSArray [News,Sports]元素。 我尝试了这个和其他一些方法,但他们似乎并没有尝试削减它。我的Swift技能不是那么先进,我希望这篇文章有意义。

Sections = itemsDict.allKeysForObject(<#anObject: AnyObject#>)

1 个答案:

答案 0 :(得分:1)

要获得Array个密钥中所有String的{​​{1}},您可以使用Dictionary的{​​{1}}属性以及allKeys {1}}函数,如下:

NSDictionary

输出:

reduce

但是,我认为没有充分的理由将var itemsDict = [ ["News"]:["a":"www.hello.co.uk","b":"www.hello.com"], ["Sport"]:["c":"www.hello.co.uk","d":"www.hello.com"], ] let keys = (itemsDict.allKeys as [[String]]).reduce([], combine: +) println(keys) 的{​​{1}}用作[News, Sport] 个密钥。相反,我只是直接使用Array s作为键,如下所示:

String

在这种情况下,获取DictionaryString的密钥非常简单:

var itemsDict = [
    "News":["a":"www.hello.co.uk","b":"www.hello.com"],
    "Sport":["c":"www.hello.co.uk","d":"www.hello.com"],
]

注意:我之前使用的是Array属性,之前使用的是Dictionary属性,因为这是一个原生的Swift let keys = itemsDict.keys.array 而早期的代码是keys,因为它使用了allKeys来获取密钥。