[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] 画像を合成する
画像を合成 以下の2つの画像を合成してみます。円と四角です。 画像をプロジェクトに追
-
[Swift] UINavigationControllerで戻るイベントを取得する
UINavigationController UINavigationControllerを使用し
-
[Swift] Asset Catalogについて
XCode5から追加されたAsset Catalog。 いままで標準のImages.xcasset
-
[Swift] ビルド時のエラー&iOS8でNSBigDecimalのバグ
ビルド時のエラー Swiftプロジェクトを実行中に以下のエラーが出ました。 "__TFSs15_
-
[Objective-C] no architectures to compile for … のコンパイルエラーについて
起動したプロジェクトでコンパイルエラーが出ました。 no architectures to com
-
[Swift] frameworkについて
先日、Swiftで実装されたライブラリをまとめたサイトを発見しました。 Swift Toolb
-
OSSの使い方がわからない・・・。
チュートリアル系の、storyboradでview controllerを置いて画面遷移を設定してっ
-
[iPhone App]WorkManager アップデートしました。
Processing For App Storeでやきもきした僕です。こんにちわ。 今
-
iPhoneApp WorkManager公開されました!
きっとリジェクトされるんだろうなと思いながら申請を出して1週間。 本日、公開のメールが届きまし
-
[Swift] Swiftでいろんなfor文まとめてみた
いろんなfor文 プログラム作成で必ず出てくるfor文を自分なりにまとめてみました。 Swift
ad
- PREV
- [Swift] Asset Catalogについて
- NEXT
- [PHP] ランダムな英数字を生成する