目前,我已经设置了我的应用程序,以便通过ShareKit利用Twitter服务的XAuth实现。那些了解ShareKit并将其实现到您自己的应用程序中以用于测试目的或将其实现的大量服务添加到您的应用程序的人,您很好,我们有一个SHKTwitter.h和.m和一个SHKTwitterForm.h和.m可以在源代码中的Sharers文件夹下找到。
在这里,我已经开始为ShareKit实现我自己的TwitLonger支持。但是,我遇到了一些问题。对于那些没有使用TwitLonger API的用户,他们只需要Twitter用户的用户名即可实际发送Tweet。但是,我正在努力从SHKTwitterForm中提取输入的Twitter用户名。
目前,在与Nate(ShareKit的开发人员)交谈之后,我把它放在一起从NSMutableDictionary中提取用户名密钥,保存到NSString然后将其保存到NSUserDefault对象中。然后,当我的TwitLonger API实现通过创建从NSUserDefault对象构建的新NSString启动时,就会调用它。
在我的SHKTwitter.m中,我按照Nate的指示创建了 - (void)authorizationFormSave :( SHKFormController *)表单的子类。如下所示,这就是我所拥有的。
- (void)authorizationFormSave:(SHKFormController *)form
{
NSMutableDictionary *dict = [form formValues];
NSArray *keys = [dict allKeys];
NSString *usernameString = [[keys valueForKey:@"username"] componentsJoinedByString:@""];
[[NSUserDefaults standardUserDefaults] setObject:usernameString forKey:@"twitter_name_preference"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
但是,每当我将此NSUserDefault对象称为SHKTwitterForm.m中的新NSString时,它将返回nil。
任何人都知道如何更简单地实现这一目标,还是我正确地做到了?我觉得我在NSMutableDictionary中抓取对象的方式错了。任何帮助将不胜感激!
答案 0 :(得分:1)
您需要向字典对象询问valueForKey。
例如:
NSString *usernameString = [dict valueForKey:@"username"];