アドバイスありがとうございます。もう一度、cocoa の coding convention を見直してみます。
とりあえず、ご指摘通りにクラス名とメソッド名を変更してみました。
クラス名
AppPreference
働き
「設定」アプリで設定された当該アプリの項目のやり取りを管理するためのクラス
メソッド名
readPrefs
働き
「設定」アプリで設定された当該アプリの項目を読み取る
AppPreference は xxxAppDelegate で初期化される。readPrefs は
- (void)applicationDidFinishLaunching:(UIApplication *)application
- (void)applicationDidBecomeActive:(UIApplication *)application
のタイミングで呼ばれる。
で、その後が wang さんからのアドバイスの私なりの理解なのですが、
readPrefs 中に
xxxAppDelegate* appDelegate = (jDialerAppDelegate*)[UIApplication
sharedApplication].delegate;
を記述し、
appDelegate.xxx = readPrefsで読み出した値;
を設定して、
xxxViewController から同様に、
xxxAppDelegate* appDelegate = (jDialerAppDelegate*)[UIApplication
sharedApplication].delegate;
を記述し、
xxxViewControllerで設定した変数(メンバ)= appDelegate.メンバ
を行い、xxxViewController で 「設定」で設定した値が使えるようになる。
と言うものです。
どうでせうか?
m_yukio さん、
cocoa 勉強会の時に、色々と教えてください。
以上、よろしくお願いいたします。
2010年8月18日6:13 m_yukio <yukio.m...@gmail.com>:
> --
> このグループから退会するには、次へメールをお送りください。
> cocoa-dev-jap...@googlegroups.com
> その他のオプションについては以下にアクセスしてください。
> http://groups.google.com/group/cocoa-dev-japan
>
--
Osamu OHASHI
osamu....@gmail.com
http://www.teamknox.com
Google Wave - osamu....@googlewave.com
MS-messenger - ooo_...@hotmail.com
Skype - ooo_1115
twitter - teamknox
facebook - http://www.facebook.com/osamu.ohashi
コード例ありがとうございます。
変更タイミングを通知する方法もありますね。そのタイミングで参照し直して、メンバを再設定する方法も確かにありですね。まだ、咀嚼しきれていないのでテストアプリを作ってみます。
読み取りタイミングは xxxViewController
でその値を参照する時に読み取れればベストなんですけど、アプリが起動した後に適当なタイミングで読み取る (readPrefs の実行を行う)
と落ちてしまいます。awakeFromNib
の中(アプリが起動しきっていない)からなら、問題なく読み取れます。また、xxxAppDelegate の
- (void)applicationDidFinishLaunching:(UIApplication *)application
- (void)applicationDidBecomeActive:(UIApplication *)application
中からもアプリが起動しきっていないので、読み取れます。
要は読み取った値を保持していて、任意のタイミングで xxxViewController で参照出来ればいいんですが、こんなに難しくなると…。
それともこういう事は一般的では無いんですかね?
2010年8月18日19:13 m_yukio <yukio.m...@gmail.com>: