私はiOSプログラミングの新機能を持っています。シングルトンクラスが何であるか、そしてなぜそれが使われるのかに非常に興味があります。私はいくつかの情報を見つけましたが、それはあいまいです。特に私はそれを実際の例に適用したいと思います。私のプロジェクトはFacebook SDKを使用していて、友人リストを含むNSDictionaryのシングルトンクラスを作成したいと思っています。私の.mデリゲートファイル:デリゲートクラスを使用する代わりにシングルトンクラスを理解して書く
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//here is some other code
facebook = [[Facebook alloc] initWithAppId:@"my app id" andDelegate:self];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([defaults objectForKey:@"FBAccessTokenKey"]
&& [defaults objectForKey:@"FBExpirationDateKey"]) {
facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"];
facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"];
}
if (![facebook isSessionValid]) {
NSArray *permissions = [[NSArray alloc] initWithObjects:
@"user_location",
@"friends_location",
@"read_friendlists",
nil];
[facebook authorize:permissions];
[permissions release];
}
[facebook requestWithGraphPath:@"me/friends" andDelegate:(id)self];
//here is some other code
}
そして私は、友人のリストを返す要求の私NSDictionaryの値に設定します。私は、シングルトンクラスを記述する必要があると委譲クラスAppDelegate *delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
を使用していない
- (void)request:(FBRequest *)request didLoad:(id)result {
_friendsDictionary = result;
}
どのようにして、 。
また、「FacebookID、UserInfoなど」のようなプロパティを追加して、アプリケーションのさまざまな目的にget/setメソッドをビルドすることもできます。 – Sakares
だから私はデリゲートのように私のシングルトンクラスに同じメソッドを書く必要がありますか? – RomanHouse
として@Jojasは言った..あなたはFacebookのインスタンスとして必要なプロパティを定義し、あなたのシングルトンクラスを介してプロジェクトの任意のクラスにアクセスすることができます..また、シングルトンクラスでは、通常のクラス。 –