我尝试在Swift 3中获取Bundle路径,但每当我使用时,它总是会说“未解析的标识符Bundle”。guard let Path = Bundle.main.path(ResolvedName: name , ofType : type)
。
Swift现在改变了使用套装吗? 或者我必须在使用这些标识符之前创建某种类型的NSBundle Value(如变量)?
我在网上搜索过,似乎无法找到解决问题的任何内容。
这是我的代码:
import Foundation
enum PlistError: ErrorType {
case invalidResource
case parsingFailure
}
class PlistLoader {
static func array(fromFile name: String, ofType type: String) throws -> [[String: String]] {
guard let path = Bundle.main.path(forResource: name, ofType: type) else {
throw PlistError.invalidResource
}
guard let array = NSArray(contentsOfFile: path) as? [[String: String]] else {
throw PlistError.parsingFailure
}
return array
}
}
class ContactsSource {
static var contacts: [Contact] {
let data = try! PlistLoader.array(fromFile: "ContactsDB", ofType: "plist")
return data.flatMap { Contact(dictionary: $0) }
}
}