从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文件相同。

  1. 新:【新数据集】创建数据集并在Assets.xcassets文件夹中重命名为“funny”。 好的,gif文件被添加到Assets.xcassets文件夹中。 在此处输入图像描述

  2. 使用:

     NSDataAsset *asset = [[NSDataAsset alloc] initWithName:@"funny"]; self.gifImageView.image = [UIImage sd_animatedGIFWithData:asset.data]; 
    • (UIImage *)sd_animatedGIFWithData:(NSData *)data:是用于在SDWebImage中加载gif图像的UIImage + GIF类别。