This question already has answers here:
Can I access an xcassets directory on the filesystem?

(4 个回答)


4年前关闭。




我正在尝试获取我在 iOS 应用程序的 Assets.xcassets 目录中拥有的文件的路径,但我无法获取。似乎我应该以某种方式使用 NSBundle.mainBundle(),但即使我导入 Foundation 或 UIKit,Xcode 也找不到 NSBundle。如果我对“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
    }
    

    最佳答案

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

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

    关于ios - 在 iOS : NSBundle is missing 中获取 Assets 文件的路径,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40181359/

    10-11 14:36