ShareKit - Как получить доступ к имени пользователя Twitter

В настоящее время я настроил свое приложение, чтобы воспользоваться реализацией XAuth сервисов Twitter через ShareKit. Те, кто знает о ShareKit и внедрили его в свое собственное приложение либо для целей тестирования, либо для добавления огромного набора сервисов, которые он реализует в ваше приложение, вам будет хорошо, если у нас есть SHKTwitter.h и .m, а также SHKTwitterForm.h и .m, которые можно найти в папке Sharers в исходном коде.

Именно здесь я начал реализовывать мою собственную поддержку TwitLonger для ShareKit. Однако я столкнулся с несколькими проблемами. Тем, кто не использовал TwitLonger API, им нужно только имя пользователя Twitter для фактической отправки твита. Однако я изо всех сил пытаюсь извлечь введенное имя пользователя Twitter из SHKTwitterForm.

В настоящее время, после разговора с Нейтом (разработчиком ShareKit), я собрал это, чтобы вытащить ключ имени пользователя из NSMutableDictionary, сохранить в NSString, а затем сохранить его в объекте NSUserDefault. Затем он вызывается, когда моя реализация API TwitLonger запускается путем создания нового NSString, созданного из объекта NSUserDefault.

В моем SHKTwitter.m я создал подкласс формы - (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 в новый NSString в моем SHKTwitterForm.m, он возвращает nil.

Кто-нибудь знает, как я могу добиться этого еще проще, или я делаю это правильно? Мне кажется, что я неправильно беру объект в NSMutableDictionary. Любая помощь будет оценена по достоинству!


person Sebastien Peek    schedule 05.11.2010    source источник
comment
В приведенном выше примере вы запрашиваете значение в массиве ключей. NSArray не отвечает на valueForKey.   -  person Black Frog    schedule 21.02.2011


Ответы (1)


Вам нужно запросить у объекта словаря значение valueForKey.

Например:

NSString *usernameString = [dict valueForKey:@"username"];
person Black Frog    schedule 21.02.2011