Swift
iOSDay 25

カタログからどんどんアセットが出てくる

More than 1 year has passed since last update.

 これまで、若干の名前負け感があった Asset Catalog ですが、iOS 9 より Image Sets に加え Data Sets も持てるようになりました。つまり、画像以外のアセットも全て Assets.xcassets に放り込むことができます。

テキストファイルはもちろんのこと、

sugoi-text-file

音楽ファイルもいけるし

sugoi-music-file

動画ファイルもいけるし

sugoi-movie-file

あとは何でしょう。画像は画像でも、Animated GIF や SVG などが便利そうですね。

 アセットを取り出すときは、これまた iOS 9 より追加された NSDataAsset を使います。

if let asset = NSDataAsset(name: "sugoi-text-file") {

let text = String(data: asset.data, encoding: .utf8)
}

if let asset = NSDataAsset(name: "sugoi-music-file") {

self.audioPlayer = try! AVAudioPlayer(data: asset.data)
self.audioPlayer.play()
}

if let asset = NSDataAsset(name: "sugoi-movie-file") {

let videoUrl = URL(string: "\(NSHomeDirectory())/Documents/sugoi-movie-file")!
try! asset.data.write(to: videoUrl, options: [.atomic])

let playerItem = AVPlayerItem(url: videoUrl)
self.videoPlayer = AVPlayer(playerItem: playerItem)

...

// この例だとかえって手間が増えている疑惑
}

 こうしてエンジニアは、アセットを追加する度に心を濁らせてくる1 .xcodeproj や、使い方を覚えられない2 NSBundle から解放されるのでした。楽しい!₍₍ (ง╹◡╹)ว ⁾⁾





  1. 主に私の 



  2. 主に私が