在类之间传递数据不起作用

时间:2012-04-27 13:00:19

标签: objective-c ios delegates

我正在尝试在类之间传递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是安培的。我做错了什么?

2 个答案:

答案 0 :(得分:2)

在appDelegate中写一个方法:

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

然后在其他课堂上:

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

这对我来说很好。

编辑: @Abizern评论我认为解决你的问题。他是对的。

答案 1 :(得分:-2)

“@ synthesize contactsFromFacebook = _contactsFromFacebook;”

_contactsFromFacebook在哪里?

我所看到的只有以下声明: -

NSDictionary * contactsFromFacebook;

@property(强,非原子)NSDictionary * contactsFromFacebook;

我看到强大的属性contactsFromFacebook与您在实例化的NSDictionary上分配的变量_contactsFromFacebook之间没有链接