在 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 [重复]的主要内容,如果未能解决你的问题,请参考以下文章