我正在读一个plist键(NSArray和n NSDictionaries):
let regionsToMonitor = NSBundle.mainBundle().infoDictionary["Regions"] as Array>
现在我迭代它:
for regionToMonitor in regionsToMonitor {
现在我想得到regionToMonitor的uuidString
在ObjC: NSString *uuidString = regionToMonitor[@"uuidString"];
在swift我尝试: let uuidString = regionToMonitor["uuid"]!.stringValue;
以上编译但字符串始终nil
处于快速状态.regionToMonitor["uuid"]
没有时使用!.stringValue可以正常工作println
我如何在这里获得有效的Swift.String?
我想把它传递给NSUUID!
我也试过了
let uuidString:String = regionToMonitor["uuid"]
=> AnyObject不能转换为String
let uuidString = regionToMonitor["uuid"] as String
=>找不到接受提供的参数的'下标'的重载
let uuidString = regionToMonitor["uuid"];
>'AnyObject?' 不能隐含地向下转换为'String'; 你的意思是用'as'强迫低垂?
我发现这对我有用
var uuidString: String? = regionToMonitor["uuid"] as AnyObject? as? String
编辑:这是一个较旧的swift版本的答案
请使用接受的答案.
我结束了丑陋的界限:
var uuidString:String = regionToMonitor["uuid"] as! String
没有警告,没有错误,没有运行时错误