在 iOS 中获取资产文件的路径:缺少 NSBundle [重复]

Posted

技术标签:

【中文标题】在 iOS 中获取资产文件的路径:缺少 NSBundle [重复]【英文标题】:Get path to assets file in iOS: NSBundle is missing [duplicate] 【发布时间】:2016-10-21 16:22:38 【问题描述】:

我正在尝试将 path 获取到我在我的 ios 应用程序的 Assets.xcassets 目录中拥有的文件,但我做不到。似乎我应该以某种方式使用 NSBundle.mainBundle(),但 Xcode 找不到 NSBundle 即使我导入 Foundation 或 UIKit。如果我在“NSBundle”上自动完成,我会得到以下选项:

NSBundleErrorMaximum
NSBundleErrorMinimum
NSBundleResourceRequest
NSBundleExecutableArchitecturePPC
NSBundleExecutableArchitectureI386
NSBundleExecutableArchitecturePPC64
NSBundleExecutableArchitectureX86_64
NSBundleOnDemandResourceInvalidTagError

我不知道这些是干什么用的。所以我的问题是:

    如何将NSBundle 导入到我的项目中? 如何获取以下文件的路径:Assets.xcassets/Database.dataset/database.txt

请注意,我可以通过以下操作获取文件的 内容,但我想要文件的 路径

fileprivate static func readDatabaseFileFromAssets() -> NSDictionary

    let databaseAsset = NSDataAsset(name: "Database", bundle: Bundle.main)
    let json = try? JSONSerialization.jsonObject(with: databaseAsset!.data, options: JSONSerialization.ReadingOptions.allowFragments)
    return json as! NSDictionary

【问题讨论】:

NSBundle 现在只是 Bundle 【参考方案1】:

在 Swift3 中很多东西都改名了!

let url = Bundle.main.url(forResource: "Database", withExtension: "txt")
// url.path

【讨论】:

以上是关于在 iOS 中获取资产文件的路径:缺少 NSBundle [重复]的主要内容,如果未能解决你的问题,请参考以下文章

获取资产文件夹的完整路径

iOS从资产目录创建文件名列表

Android项目无法解析任何静态资产

iOS如何显示具有资产库路径的图像而不将它们绑定到实例变量

由于“缺少所需的图标文件”,无法分发 Xamarin iOS iPad 存档

Android:如何找到资产文件夹的绝对路径?