アセットカタログから画像を取得するために、UIImage(named: "fileName")を使用して画像を取得できることを理解しています。
ただし、XCAssetカタログからDATAを取得している場合はどうなりますか?これはわかりません。
私が試してみました、
let url = NSBundle.mainBundle().URLForResource("fileName", withExtension: nil)
let data = NSData(contentsOfURL: url!)
しかし、それはゼロです。 XCAssetsカタログからデータを取得する方法がわかりません。誰かが私を助けてくれる場合(グーグルで助けられなかった場合)、私は非常に感謝します!
更新:
アセットカタログからデータを取得しようとするのはなぜですか?アニメーションgifをアセットカタログにドラッグしました。そしてアセットカタログはそれをDATAと解釈します。これが、資産カタログからデータを取得しようとしている理由です。
更新:これは、Assets.xcassetsフォルダーのスクリーンショットです。
「_Loading」というファイルがあり、右側は「データセット」と見なされます。アセットカタログからデータセットを取得する方法がわかりません。
自分の質問に答えます。
IOS 9以降、アセットカタログでは画像だけではありません。データセットを許可します。アセットカタログからデータを取得するには、NSDataAssetクラスを使用する必要があります。
例:「CoolJSON」という名前のデータアセットがあるとします
if let asset = NSDataAsset(name: "CoolJSON") {
let data = asset.data
let d = try? NSJSONSerialization.JSONObjectWithData(data, options: [])
}
この例では、NSDataオブジェクトをjsonに変換しました。
Assets.xcassetsファイルからgif画像を読み込みます。これはjsonファイルをロードする場合も同じです。
新規:【新しいデータセット】データセットを作成し、Assets.xcassetsフォルダー内の「funny」の名前を変更します。はい、gifファイルがAssets.xcassetsフォルダーに追加されます。
使用する:
NSDataAsset *asset = [[NSDataAsset alloc] initWithName:@"funny"];
self.gifImageView.image = [UIImage sd_animatedGIFWithData:asset.data];