从 swift 中的 NSMutableDictionary 获取值?
get Values from NSMutableDictionary in swift?
我在 NSUSerDefaluts
中存储了一个 NSMutableDictionary
,我已成功检索到它。
if var tempFeed: NSDictionary = NSUserDefaults.standardUserDefaults().dictionaryForKey("selectedFeeds") {
println("selected Feed: \(tempFeed)")
savedDictionary = tempFeed.mutableCopy() as NSMutableDictionary
问题是如何将 MutableDictionary 转换为 array/MuatableArray 并对其进行迭代,以便我可以获得 it.Here 的值是字典。我想获取其中所有 URL 的值。
{
4 = {
URL = "myurl1";
};
5 = {
URL = "myurl3";
};
6 = {
URL = "myurl3";
};
}
我尝试了很多选项都失败了。
谢谢。
您可以在字典中使用 .values.array
来获取无序的值。
作为数组
然后,您只需将 NSArray
添加到 NSMutableArray
。
var mutableArray:NSMutableArray = NSMutableArray(array: savedDictionary .values.array)
如果您只想对其进行迭代,则不必将其转换为数组。您可以直接这样做:
for (key,value) in savedDictionary {
println("\(key) = \(value)")
}
(如果您对密钥根本不感兴趣,可以将变量名替换为 _
以忽略它)。
或者,不要将 tempFeed
设为 NSDictionary
类型,只需将其保留为 dictionaryForKey
returns 类型,即 Swift 字典。这有一个 .values
属性,它是字典中所有值的惰性序列。您可以将其转换为数组(因此 tempFeed.values.array
)或直接对其执行操作(在 for…in
中使用它,将其映射为 tempFeeds.values.map { NSURL(string: toString([=18=])) }
等)
如果您想将所有 url 添加到一个数组中,请对其进行迭代并将所有值添加到某个数组。
for (_,urlDict) in savedDictionary {
for(_,url) in urlDict {
urlArr.append(url) // create empty urlArr before
}
}
urlArr 现在包含所有 url(未排序)
我在 NSUSerDefaluts
中存储了一个 NSMutableDictionary
,我已成功检索到它。
if var tempFeed: NSDictionary = NSUserDefaults.standardUserDefaults().dictionaryForKey("selectedFeeds") {
println("selected Feed: \(tempFeed)")
savedDictionary = tempFeed.mutableCopy() as NSMutableDictionary
问题是如何将 MutableDictionary 转换为 array/MuatableArray 并对其进行迭代,以便我可以获得 it.Here 的值是字典。我想获取其中所有 URL 的值。
{
4 = {
URL = "myurl1";
};
5 = {
URL = "myurl3";
};
6 = {
URL = "myurl3";
};
}
我尝试了很多选项都失败了。 谢谢。
您可以在字典中使用 .values.array
来获取无序的值。
作为数组
然后,您只需将 NSArray
添加到 NSMutableArray
。
var mutableArray:NSMutableArray = NSMutableArray(array: savedDictionary .values.array)
如果您只想对其进行迭代,则不必将其转换为数组。您可以直接这样做:
for (key,value) in savedDictionary {
println("\(key) = \(value)")
}
(如果您对密钥根本不感兴趣,可以将变量名替换为 _
以忽略它)。
或者,不要将 tempFeed
设为 NSDictionary
类型,只需将其保留为 dictionaryForKey
returns 类型,即 Swift 字典。这有一个 .values
属性,它是字典中所有值的惰性序列。您可以将其转换为数组(因此 tempFeed.values.array
)或直接对其执行操作(在 for…in
中使用它,将其映射为 tempFeeds.values.map { NSURL(string: toString([=18=])) }
等)
如果您想将所有 url 添加到一个数组中,请对其进行迭代并将所有值添加到某个数组。
for (_,urlDict) in savedDictionary {
for(_,url) in urlDict {
urlArr.append(url) // create empty urlArr before
}
}
urlArr 现在包含所有 url(未排序)