[Swift] プロパティリスト(plist)の値を取得
公開日:
:
iPhone App 開発, Swift
Warning: Use of undefined constant user_level - assumed 'user_level' (this will throw an Error in a future version of PHP) in /home/users/1/juny/web/hidef/wp-content/plugins/ultimate-google-analytics/ultimate_ga.php on line 524
plistからデータを取得してみます。
こちらのエントリーも参考にしてみてください。
[Swift] プロパティリスト(plist)を使ってCoreDataで一括登録する
プロパティリストの作成
次にテストデータを。
まずDictionaryがあって、その中にキーがnameのデータとDictionayが2つある場合を想定しました。
Typeは以下から選ぶことができます。
- Array
- Dictionary
- Boolean
- Data
- Date
- Number
- String
Finderからテキストエディタで開くと中身はxml形式でこんな構成になっています。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>name</key> <string>name1</string> <key>dictionary1</key> <dict> <key>name</key> <string>name2</string> </dict> <key>dictionary2</key> <dict> <key>name</key> <string>name3</string> </dict> </dict> </plist>
サンプルコード
let path = NSBundle.mainBundle().pathForResource("Sample", ofType: "plist") let dictionary = NSDictionary(contentsOfFile: path!) if let value1: AnyObject = dictionary?.objectForKey("name") { println("value1 = \(value1)") } if let value2: AnyObject = dictionary?.objectForKey("dictionary1")?.objectForKey("name") { println("value2 = \(value2)") } if let value3: AnyObject = dictionary?.objectForKey("dictionary2")?.objectForKey("name") { println("value3 = \(value3)") }
1行目でSample.plistのパスを取得。
2行目でDictionary型でプロパティファイルの内容を取得します。
4行目以降、各プロパティの値を取得し出力します。
NSDictionaryのobjectForKey関数の戻り値はAnyObject?なので、nilが返ってくる可能性があります。
nilか否かを判断し出力します。
ちゃんと値が取得できると(nilじゃないと)確定している場合は!をつけてやるとOKです。
let value1: AnyObject! = dictionary?.objectForKey("name") let value2: AnyObject! = dictionary?.objectForKey("dictionary1")?.objectForKey("name") let value3: AnyObject! = dictionary?.objectForKey("dictionary2")?.objectForKey("name")
出力結果
value1 = name1
value2 = name2
value3 = name3
ad
関連記事
-
[Swift] CoreDataを使ってみる
SwiftでCoreData 今回はSwiftでCoreDataを使ってみます。 Xcodeプロ
-
[Swift] プロパティリスト(plist)を使ってCoreDataで一括登録する
プロパティリストを使う 初期データやあらかじめ用意したデータを一括登録したい場合、プロパティリスト
-
[Objective-C] バージョン更新時に変更内容をアラートで出力する
アプリの更新内容を表示したい! バージョン更新時に変更内容を表示させたいのは、ユーザーがいちいちA
-
[Objective-C] iPhoneアプリからのメーラー起動
今回はiPhoneアプリからメーラーを起動する処理を紹介します。 メーラー起動のコントローラー
-
[Swift] Asset Catalogについて
XCode5から追加されたAsset Catalog。 いままで標準のImages.xcasset
-
[iPhone App] WorkManager 1.2.0版がリリースされました。
新機能 以前から要望などが多かったものを元に、機能を追加いたしました。 新バージョンで追加された
-
[Objective-C] no architectures to compile for … のコンパイルエラーについて
起動したプロジェクトでコンパイルエラーが出ました。 no architectures to com
-
App開発をはじめてみました。
はじめてみたはいいものの、右も左もわからず、書籍を読みあさり、ネットを徘徊し、いろんなことを調べ上げ
-
Xcode5のstoryboard内でUIKeyCommandエラーの対処法
既存のプロジェクトからstoryboardにあるオブジェクトをコピペして、新規プロジェクトに貼付けた
ad
- PREV
- [Swift] Asset Catalogについて
- NEXT
- [PHP] ランダムな英数字を生成する