やりたいこと
サーバーサイドの環境が、開発環境、ステージング環境、本番環境など複数用意されている。
アプリ側から見た接続先が複数に分かれるので、ソースコードにべた書きするのではなく property list に外だしして、動的に読み分けたい。
こんな感じで読み込みが行われる。
let path = bundle.path(forResource: "dev1",
ofType:"plist",
inDirectory:"Properties")
let dict = NSDictionary.init(contentsOfFile: path!)!
はまったこと
上記の path が nil になってしまう。
原因と対処方法
プロジェクトに各ファイルは追加されていたが、ディレクトリが追加されていないので読み込みに失敗していた。
- まず、プロジェクト内の好きな位置にディレクトリを Finderで 作成する
- 左ペインから
Add files to プロジェクト名を選択し、ディレクトリ を追加する - 読み込まれたディレクトリに、好きな property list を追加する
XCodeの左ペインには通常 黄色い ディレクトリが表示されますが、上記手順で追加すると 青い ディレクトリになります(上記キャプチャは正しい手順で登録した状態なので青い)。 inDirectory は青いディレクトリしか読み込まれない、というのが今回の原因でした。
