3

目前,我已經設置了我的應用程序,以便通過ShareKit利用Twitter服務的XAuth實現。那些瞭解ShareKit並已將它實現到自己的應用程序中的用於測試目的或將它實現的大量服務添加到您的應用程序中的用戶,您最好是擁有SHKTwitter.h和.m以及一個SHKTwitterForm.h和.m可以在源代碼中的Sharers文件夾下找到。ShareKit - 如何訪問Twitter用戶名

在這裏,我已經開始實施我自己的Shareware的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

在你上面的例子,你問你的鑰匙陣列的價值。 NSArray不響應valueForKey。 – 2011-02-21 05:17:54

回答

1

您需要詢問字典對象的valueForKey。

例如:

NSString *usernameString = [dict valueForKey:@"username"];