Help us understand the problem. What is going on with this article?

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

More than 1 year has 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()
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
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  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
ユーザーは見つかりませんでした