2013-05-21 31 views
1

遇到了一個簡單的objc問題,需要一些幫助。我發送一個查詢給服務器,讓我回到一個包裹在jSON中的元組。只需使用字典排除一切。objc分離元組

- (void)viewDidLoad 
{ 
[super viewDidLoad]; 
Nodes *node = [Nodes new]; 
NSDictionary *jsonDict = [node nodeActivityforNode:@"17" withDates:nil and:nil]; 
NSDictionary *jsonActivityDict = [jsonDict objectForKey:@"activity"]; 
NSLog(@"activity?: %@", jsonActivityDict); 

} 

,然後繼承人的調試轉儲

activity?: 

(
    (
    "2013-05-21 16:58:32", 
    0 
), 
    (
    "2013-05-21 16:58:15", 
    0 
), 
    (
    "2013-05-21 16:57:59", 
    0 
), 

我試圖分裂逗號分隔值,以便我可以把它們放在單獨的int和string對象,但如何得到的只是想不出在那裏。任何幫助,將不勝感激。謝謝!

+0

你爲什麼包含Python標籤?你想用Python解決你的問題嗎? – Alfe

+0

我以爲這是一個python元組?我對python一無所知,但後端是用python編寫的,而且它做了一些解析舞蹈,將它的元組轉換爲上面的輸出。 – user2159691

+0

由於它來自JSON,並且由於JSON在有序集合(Python中的元組和列表)的兩個不同版本之間沒有區別,我猜它不會是元組。在轉換爲JSON之前,它可能是Python方面的元組,但是現在在轉換中丟失了。所以我想你的問題實際上與Python無關。 – Alfe

回答

1

「活動」數據看起來像是數組的數組,而不是字典。如果你知道你總是會拿到三雙的值,並且希望這6個數值投入6個獨立的變量,那麼你可以這樣做:

NSDictionary *jsonDict = [node nodeActivityforNode:@"17" withDates:nil and:nil]; 
NSArray *jsonActivities = [jsonDict objectForKey:@"activity"]; 
NSString *date1 = jsonActivities[0][0]; 
int int1 = [jsonActivities[0][1] intValue]; 
NSString *date2 = jsonActivities[1][0]; 
int int2 = [jsonActivities[1][1] intValue]; 
NSString *date3 = jsonActivities[2][0]; 
int int3 = [jsonActivities[2][1] intValue]; 

注意,該代碼將崩潰,如果有小於3臺雙或者這三個「對」中的任何一個只有一個而不是兩個值。

+0

謝謝!我用這個邏輯將它分解成兩個獨立的數組。謝謝您的幫助 – user2159691