如何在Swift 3中获得Bundle Path

时间:2017-08-31 00:13:44

标签: swift swift3 path nsbundle

我尝试在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) }
    }

}

0 个答案:

没有答案