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