所以我有这个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#>)
答案 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
在这种情况下,获取Dictionary
个String
的密钥非常简单:
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
来获取密钥。