[openFrameworks] ofxiPhoneでSettings.bundleを使う

- 2013-07-19

ofxiPhone のアプリで環境設定でユーザー設定を設けたくなるときがあると思います。

これはCcocoaTouchの時と同じように、プロジェクトにSettings.bundleを追加して、testApp::setup()時にNSUserDefaultsを呼び出せばできます。

 

1) Settings.bundleの追加

XCodeのインスペクタでxcodeprojファイルを左クリック->New Group でSettings のようなグループを作成

作成したグループを左クリック->New File で iOS / Resource の Settings Bundle を選択してプロジェクトのディレクトリに作成

xcode1

 

以下のように作成されるので Settings.bundle / Root.plist を編集して設定を作成する

xcode2

 

 

2) Root.plist の編集

plistの編集については

iPhoneプログラミング広場 Settings Bundle サンプルプログラム

iPhoneアプリを「設定画面」にて設定するための手順 などを参考に。

 

3) NSUserDefaultsでplistを取得

 

o/FのtestApp::setup()時にNSUserDefaults を使ってplistの Identifier でしたキーを指定すれば取得できる。

 #include "testApp.h" NSString const *portNumber;

//--------------------------------------------------------------

void testApp::setup(){

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

portNumber = [defaults stringForKey:@"portNumber"];

NSLog(@"portNumber is _________ %d" port.intValue);

} 接続先サーバの指定とかユーザーに設定を選択させるのに便利。