目前,我已经设置了我的应用程序以通过 ShareKit 来利用 Twitter 服务的 XAuth 实现。那些知道 ShareKit 并已将其实现到您自己的应用程序中的人,无论是出于测试目的还是为了将它实现的大量服务添加到您的应用程序中,我们有一个 SHKTwitter.h 和 .m 以及一个SHKTwitterForm.h 和 .m 可以在源代码的 Sharers 文件夹下找到。
正是在这里,我开始实现我自己的对 ShareKit 的 TwitLonger 支持。但是,我遇到了一些问题。对于那些没有使用过 TwitLonger API 的人,他们只需要 Twitter 用户的用户名来实际发送推文。但是,我正在努力从 SHKTwitterForm 中提取输入的 Twitter 用户名。
目前,在与 Nate(ShareKit 的开发者)交谈后,我将它放在一起以从 NSMutableDictionary 中提取用户名键,保存到 NSString,然后将其保存到 NSUserDefault 对象中。然后当我的 TwitLonger API 实现通过创建一个从 NSUserDefault 对象构建的新 NSString 启动时调用它。
在我的 SHKTwitter.m 中,我按照 Nate 的指示创建了 -(void)authorizationFormSave:(SHKFormController *)form 的子类。正如你在下面看到的,这就是我所拥有的。
- (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];
}
但是,每当我在我的 SHKTwitterForm.m 中将此 NSUserDefault 对象调用为新的 NSString 时,它都会返回 nil。
任何人都知道如何更简单地实现这一目标,或者我做得对吗?我觉得好像我在 NSMutableDictionary 中抓取对象的方式是错误的。任何帮助,将不胜感激!