2009-07-03 5 views

答えて

5

ここでは、singletonsについての質問です。

ます。またfrankodwyerが示唆したように、アプリのデリゲートを使用して、どこでも使用することから、それをアクセスすることができました

id delegate = [[UIApplication sharedApplication] delegate]; 

使いやすさと型の安全性のために、私はこのようなカテゴリを使用します。

// put his in your delegate header file 
@interface UIApplication(MyAppAdditions) 
+ (MyAppDelegate*)sharedDelegate; 
@end 

// put his in your delegate implementation file 
@implementation UIApplication(MyAppAdditions) 
+ (MyAppDelegate*)sharedDelegate { 
    return (MyAppDelegate*)[[self sharedApplication] delegate]; 
} 
@end 

あなたはどこからでもあなたのアプリケーションデリゲートにアクセスできます:[UIApplication sharedDelegate]

+0

+1 nice - そのようなデリゲートを取得するためのショートカットがあるかどうかわかりませんでした。私はビューのプロパティとして手動で設定しています。ドウ! – frankodwyer

+0

#define UIApp [UIApplication sharedApplication] #define UIAppDelegate((MyAppDelegate *)[UIApp delegate]) –

+0

他の方法はありますか? 私は2つのセクションを持つuitableを持っていることを意味します.2つのセクションには複数のrows.bothセクションが2つの異なるviews.iを参照して両方のviews.andで整数を増やしたいときに戻ってテーブルから私はデータベースで更新したい –

2

あなたのアプリケーションの整数プロパティと文字列プロパティを代理人にし、代理人への参照をビューに渡すことができます。私はこのようなことをしていますが、正直言ってそれは痛みであり、すべてのビューでアプリケーションの代理人を利用できるようにするには少し間違いがあります。

または(これはおそらく良いですが)シングルトンクラス(Googleのシングルトンパターン)をデータクラスの1つとして宣言し、その整数/文字列をそのプロパティにすることができます。次に、プログラムのどこからでもシングルトンのゲッター/セッターにアクセスできます。しかし、複数のスレッドを持っている場合は、特別な注意が必要です。