我正在尝试访问我在Swift词典中设置的值。字典的键和值有String
。我的意图是在我处理一系列URL时使用字典来设置字符串变量。在Objective-C中,我理解这是如何工作的。我有一个名为currentFeed的字符串属性,我将字典的值传递给。
self.currentFeed = [NSString stringWithString: [self.URLDictionary objectForKey: @"FLO Cycling"]];
在斯威夫特,我遇到了困难。我尝试了以下代码并收到错误消息。
self.currentFeed = self.URLDictionary["FLO Cycling"]
Error Message: "Cannot subscript a value of type '[String:String]' with an index of type 'String'.
作为参考,字典是以下列方式在Swift中创建的。常量是用let创建的。
let kFLOCyclingURL = "http://flocycling.blogspot.com/feeds/posts/default?alt=rss"
let kTriathleteURL = "http://triathlon.competitor.com/feed"
let kVeloNewsURL = "http://velonews.competitor.com/feed"
let kCyclingNewsURL = "http://feeds.feedburner.com/cyclingnews/news?format=xml"
let kRoadBikeActionURL = "http://www.roadbikeaction.com/news/rss.aspx"
let kIronmanURL = "http://feeds.ironman.com/ironman/topstories"
使用键将项目添加到字典中。
let URLTempDictionary = ["FLO Cycling" : kFLOCyclingURL, "Triathlete" : kTriathleteURL, "Velo News" : kVeloNewsURL, "Cycling News" : kCyclingNewsURL, "Road Bike Action" : kRoadBikeActionURL, "Ironman" : kIronmanURL]
感谢您的帮助。
小心,
乔恩
答案 0 :(得分:1)
这对我来说很好。我唯一注意到的是你的字典名为URLTempDictionary,你正在访问URLDictionary。 :)
选项a(最安全,最强大)
if let dict = self.URLDictionary
{
self.currentFeed = dict["FLO Cycling"]
}
选项b(谨慎使用,可能的运行时错误)
self.currentFeed = dict!["FLO Cycling"]