[Swift] プロパティリスト(plist)の値を取得

公開日: : iPhone App 開発, Swift

plistからデータを取得してみます。
こちらのエントリーも参考にしてみてください。
[Swift] プロパティリスト(plist)を使ってCoreDataで一括登録する

プロパティリストの作成

まずはファイルを作成→Property Listを選択。
スクリーンショット 2014-12-19 13.45.08

 

ファイル名はSample.plistにしました。
スクリーンショット 2014-12-19 13.50.09

 

次にテストデータを。
まずDictionaryがあって、その中にキーがnameのデータとDictionayが2つある場合を想定しました。
スクリーンショット 2014-12-19 14.16.58

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] UINavigationControllerで戻るイベントを取得する

UINavigationController UINavigationControllerを使用し

記事を読む

[Objective-C] バージョン更新時に変更内容をアラートで出力する

アプリの更新内容を表示したい! バージョン更新時に変更内容を表示させたいのは、ユーザーがいちいちA

記事を読む

App開発をはじめてみました。

はじめてみたはいいものの、右も左もわからず、書籍を読みあさり、ネットを徘徊し、いろんなことを調べ上げ

記事を読む

[Swift] 定数クラスをつくってみる

Objective-cの場合 今回は共通にする定数をまとめるクラスを作ってみます。 まずはO

記事を読む

[iPhone App]WorkManager アップデートしました。

Processing For App Storeでやきもきした僕です。こんにちわ。 今

記事を読む

[Swift] frameworkについて

先日、Swiftで実装されたライブラリをまとめたサイトを発見しました。 Swift Toolb

記事を読む

[Objective-C] no architectures to compile for … のコンパイルエラーについて

起動したプロジェクトでコンパイルエラーが出ました。 no architectures to com

記事を読む

[Objective-C] デリゲート (Delegate)を理解する!

デリゲートとは? デリゲートに関しての意味合いとして、”委譲”とか”代理”と説明されることが多いで

記事を読む

no image

爆走中!

挫折街道爆走中です! が! 迷走中でもあるわけです、はい。 そんな中で、迷走するに至った訳

記事を読む

[iPhone App] WorkManager 1.2.0版がリリースされました。

新機能 以前から要望などが多かったものを元に、機能を追加いたしました。 新バージョンで追加された

記事を読む

ad

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

ad

[PHP] curl転送してみる(googleに)

curlでgoogle画像検索APIにアクセスしてみます。 cu

[PHP] PDOでMySQLの接続確認をする

PDO PHPでMySQLに接続する際には、mysql_connec

[PHP] ランダムな英数字を生成する

便利系メソッド 今回はPHPでランダムな英数字を作成してみます。

[Swift] プロパティリスト(plist)の値を取得

plistからデータを取得してみます。 こちらのエントリーも参考にし

[Swift] Asset Catalogについて

XCode5から追加されたAsset Catalog。 いままで標準

→もっと見る

  • 1978年の七夕生まれ。 25才でweb業界の門を叩き、28才でフリーランスに。 現在は、フリーランスでマークアップ中心に、wordpressのカスタマイズやデザインをしております。 また、iPhoneアプリの開発もしております。
PAGE TOP ↑