代码说它完全没问题并且没有错误,但是当我去运行模拟器时,这些单词将包括:
(Swift.LazyMapCollection< Swift.Dictionary< Swift.String,Swift.String>(_ base:[]
我正在尝试创建一个显示引用的引用应用。
以下是Plist导入的代码:
import Foundation
struct ImportList {
let path: String
init(FileName: String) {
self.path = NSBundle.mainBundle().pathForResource("\(FileName)", ofType:"plist")!
}
var dict: Dictionary<String, String> {
return NSDictionary(contentsOfFile: path)! as! Dictionary
}
var array: Array<AnyObject> {
return [String](arrayLiteral: String(dict.keys) { $0 as String})
}
func count() -> Int {
return array.count
}
}
谢谢。
答案 0 :(得分:4)
在这种情况下不要使用arrayLiteral
,只需使用Array()
:
var array: Array<AnyObject> {
return Array(dict.keys)
}
它可以安全地将延迟集合转换为实际数组。