Swift:确定给定的b​​undle是否是一个Application?

时间:2017-02-03 00:32:43

标签: swift macos cocoa bundle macos-sierra

在Swift 3中,如果我有,说...

import Foundation
let aRandomBundle = Bundle(path:"/A/ValidPath/To/A/Bundle")

是否有方便的方法来确定aRandomBundle是应用程序,框架还是其他类型的捆绑包?

1 个答案:

答案 0 :(得分:1)

结束这样做,效果非常好。

extension Bundle {
    func getType (outError: inout OSStatus) -> String? {
        if let info = self.infoDictionary {
        if let type = info["CFBundlePackageType"] {
            return String(describing: type)
        }
        else { outError = kLSNotAnApplicationErr; return nil }
        }
        else { outError = -10810; return nil }
    }
}