Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

iOSアプリ開発でのリソース管理

More than 3 years have passed since last update.

最近、Swiftを触り始めたのですが、画像と文字列の管理がわかりにくかったのでまとめておきます。
基礎的なことだと思いますが、同じような人の助けになれば。

試したバージョンは下記です。

  • Xcode 9.2
  • Swift 4
  • R.swift 4.0.0

R.swiftのインストール

リソースへのアクセスに R.swift というライブラリを使います。
ライブラリの説明とインストール方法は以下を参照してください。
https://github.com/mac-cain13/R.swift#installation

文字列リソースの管理

リソースファイルの作成

Xcodeの文字列リソースファイルを利用します。

ファイルの作成(Cmd+N)で開くダイアログから Strings File を選択します。

スクリーンショット 2017-12-18 17.48.52.png

名前(ここでは settings.strings とします)をつけて保存すると、空のファイルが作成されるので、"KEY" = "VALUE"; の形式で記述します。
文末にセミコロンが必要です。

settings.strings
"welcome" = "こんにちは!";
"bye" = "さようなら"

アクセス方法

下記のように取得可能です。

R.string.[ファイル名].[KEY]()
文字列の所得
let welcome = R.string.settings.welcome() // こんにちは!

画像リソースの管理

リソースの登録

アセットカタログに画像をドラッグして登録します。
スクリーンショット 2017-12-18 21.03.03.png

アセットを登録したら、一度プロジェクトをビルドします。
すると R.generated.swift に登録した画像が追加されます。

R.generated.swift
  struct image {
    /// Image `sick_kebyou_man`.
    static let sick_kebyou_man = Rswift.ImageResource(bundle: R.hostingBundle, name: "sick_kebyou_man")

アクセス方法

あとは以下のようにして取得可能です。

R.image.[リソース名]
画像にアクセス
let image1 = R.image.sick_kebyou_man()

スクリーンショット 2017-12-18 21.08.29.png

補完されるので、画像名を間違える心配もありません。

namespace付きでアクセス

画像はグルーピングして管理することもできます。

下図のようにアセットカタログにフォルダーを追加して Provides Namespace をチェックしておきます。

スクリーンショット_2017-12-18_21_16_10.jpg

すると、フォルダー配下の画像に フォルダー名.リソース名 でアクセス可能となります。

namespace付きで画像にアクセス
let image2 = R.image.hogehoge.sick_byouketsu_man()
quad
デザインとテクノロジーで新しい価値を作り出す。
https://quad.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away