据我所知,要从资产目录中获取图像,我可以使用UIImage(名为:“fileName”)来执行此操作。
但是,如果我从XCAsset目录中获取DATA,该怎么办?我无法弄清楚这一点。
我试过了,
let url = NSBundle.mainBundle().URLForResource("fileName", withExtension: nil)
let data = NSData(contentsOfURL: url!)
但它没有。我不知道如何从XCAssets目录中获取数据。如果有人可以帮助我(谷歌搜索没有帮助),请让我知道我会非常感激!
更新
为什么我要从资产目录中获取数据?我将动画gif拖入资产目录。资产目录将其解释为DATA。这就是我试图从资产目录中获取数据的原因。
更新: 这是我的Assets.xcassets文件夹的屏幕截图。
答案 0 :(得分:50)
我将回答我自己的问题。
从iOS 9开始,资产目录不仅仅包含图像。它们允许数据集。要从资产目录中获取数据,必须使用NSDataAsset类。
示例:假设您有一个名为" CoolJSON"
的数据资产if let asset = NSDataAsset(name: "CoolJSON") {
let data = asset.data
let d = try? NSJSONSerialization.JSONObjectWithData(data, options: [])
}
在这个例子中,我将一个NSData对象变成了一个json。
答案 1 :(得分:0)
从Assets.xcassets文件加载gif图像。这与加载json文件相同。
新:【新数据集】创建数据集并重命名"搞笑"在Assets.xcassets文件夹中。好吧,gif文件被添加到Assets.xcassets文件夹中。
使用:
NSDataAsset *asset = [[NSDataAsset alloc] initWithName:@"funny"];
self.gifImageView.image = [UIImage sd_animatedGIFWithData:asset.data];