0

クラス間で NSDictionary を渡そうとしています。私の AppDelegate には、インスタンス NSDictionary があります。

@interface AppDelegate : UIResponder <UIApplicationDelegate, FBSessionDelegate, FBRequestDelegate> 
{
NSDictionary *contactsFromFacebook;
}
@property (strong, nonatomic) NSDictionary *contactsFromFacebook;

私の AppDelegate.m ファイルでは、 として合成しました@synthesize contactsFromFacebook = _contactsFromFacebook;。次の私のステップ(辞書を埋める):

-(void)request:(FBRequest *)request didLoad:(id)result {
    _contactsFromFacebook = [[NSDictionary alloc]initWithDictionary:result];
}

私の someClass.m ファイルでは、contactsFromFacebook辞書のデータを使用したいと考えています。

AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
NSDictionary *someNewDictionary = [[NSDictionary alloc] initWithDictionary:appDelegate.contactsFromFacebook];

しかし、私someNewDictionaryは十分です。私が間違っていることは何ですか?

4

2 に答える 2

2

appDelegate でメソッドを記述します。

-(NSDictionary*)getSomething { return self.contactsFromFacebook; }

そして、他のクラスで:

AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
NSDictionary *someNewDictionary = [[NSDictionary alloc] initWithDictionary:[appDelegate getSomething]];

そして、これは私にとってはうまくいきます。

編集:@Abizernコメント私はあなたの問題を解決すると思います。彼は正しい。

于 2012-04-27T13:17:22.640 に答える
-2

"@synthesizecontactsFromFacebook = _contactsFromFacebook;"

_contactsFromFacebook はどこにありますか?

私が見るのは次の宣言だけです:-

NSDictionary *contactsFromFacebook;

@property (強力、非アトミック) NSDictionary *contactsFromFacebook;

強力なプロパティcontactsFromFacebookと、インスタンス化するNSDictionaryを指すように割り当てる変数_contactsFromFacebookの間にリンクがありません

于 2012-04-27T13:13:01.150 に答える