2012-10-23 42 views
2

我正在更新我的Mac應用程序開始使用弧和現代obj-c語法通過xcode只是爲了測試它我們,但我完成了obj-c語法我開始得到這個錯誤時我建立這個項目。預期的方法來讀取字典元素找不到

預期方法來讀取關於類型「NSMutableData *」

-(void) finishedCall:(id)data { 

    NSString *responseString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 

    receivedData = [responseString JSONValue]; 

    NSLog(@"receivedData-->%@",receivedData); 

    NSString *serailizeString = receivedData[@"profile_image_url"]; // <-- Error comes up here 

    NSLog (@"Serialize Value : %@",serailizeString); 

    [qrcodeMainPage genQR:serailizeString]; 

} 

上何處開始任何建議的對象沒有找到字典元件?

在此先感謝!

+0

receivedData在哪裏申報?它是一個NSDictionary? –

+0

其中的.h @interface TwitterProfileImageOverlay:NSViewController {IBOutlet NSFormCell * twitterUsernameField; IBOutlet NSButton * processedButton; NSMutableData * receivedData; } – incoe

回答

4

您正在使用新的密鑰下標語法來嘗試訪問東西(什麼編譯器認爲是)一個NSData對象,其中,作爲錯誤指示,不能正常工作。據推測,你期望receivedData是一本字典嗎?如果它在運行時確實是一個NSDictionary,則應該這樣聲明它。我不知道你所調用的-JSONValue方法是否會返回,所以我不能確定接收的數據是或可能的。如果它可能是或者可能不是字典,你需要編寫更多的代碼來檢查它的類型並且適當地運行。無論如何,dictionary[key]表示法僅適用於支持鍵控下標的類的實例的對象。 NSDictionary是其中的一個類。 NSData不是。

+0

感謝@Andrew Madsen會挖掘更多:-)這是重構 - >轉換爲ARC,整個項目搞砸了,因爲它使用了一些舊代碼。 – incoe

0

您是否缺少包含JSON擴展方法的JSON類別?

http://developer.apple.com/library/ios/#documentation/Foundation/Reference/NSJSONSerialization_Class/Reference/Reference.html 
相關問題