【发布时间】:2014-07-23 04:57:18
【问题描述】:
我正在读取一个 plist 键(带有 n 个 NSDictionaries 的 NSArray):
let regionsToMonitor = NSBundle.mainBundle().infoDictionary["Regions"] as Array<Dictionary<String,AnyObject>>
现在我对其进行迭代:
for regionToMonitor in regionsToMonitor {
现在我想获取 regionToMonitor 的 uuidString
在 ObjC 中:NSString *uuidString = regionToMonitor[@"uuidString"];
我很快尝试:let uuidString = regionToMonitor["uuid"]!.stringValue;
上面确实编译但字符串总是nil 在swift中。 regionToMonitor["uuid"] 在不使用 !.stringValue 的情况下在 println 中可以正常工作
如何在此处获取有效的 Swift.String?
我正在尝试将其传递给 NSUUID!
我也试过
let uuidString:String = regionToMonitor["uuid"]
=> AnyObject 不能转换为字符串
let uuidString = regionToMonitor["uuid"] as String
=> 找不到接受提供的参数的“下标”的重载
let uuidString = regionToMonitor["uuid"];
=> 'AnyObject?'不能隐式向下转换为“字符串”;你的意思是用'as'强制向下转换吗?
【问题讨论】:
-
NSString == Swift 中的字符串。
-
感谢 IDE 也这么说 ;) - 这就是我的想法,但这不起作用 - 请参阅我的编辑