60
55

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

iOSAdvent Calendar 2015

Day 25

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

Last updated at Posted at 2015-12-24

 これまで、若干の名前負け感があった 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. 主に私が

60
55
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
60
55

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?