2012-01-03 42 views
0

我使用XMLReader插件在這裏找到https://github.com/Insert-Witty-Name/XML-to-NSDictionary將我的XML數據轉換成NS-字典,但我很困惑如何設置字典。這裏是我給出什麼:這是NSDictionary有效的方式來設置?使用XML到NSDictionary插件

{ 
    response =  { 
     "@status" = ok; 
     authentication =   { 
      "@description" = "The username you provided is valid."; 
      "@login" = USERNAME; 
      "@response" = success; 
      "@user_id" = USERID; 
     }; 
    }; 
} 

我試圖把響應對象,並說,如果關鍵是等於成功,然後做一些事情,但我不知道這本字典甚至設置正確。

回答

0

儘管@作爲鍵的怪異,它似乎是有效的。

您可以輕鬆地詢問您的元素響應([ objectForKey:@"response"]),獲取[ objectForKey:@"authentication"],然後[ objectForKey:@"@response"]檢查[yourString isEqualToString:@"success"]

編輯:添加例子

我最近注意到一些;在那裏逗號應該是,但我們希望這只是一個錯字或類似的東西。

如果您有疑問,您可以隨時NSLog(@"%@", [yourFirstDictionary allKeys]);以確保這些是有效的密鑰。

爲了舉例,我們稱您的第一個對象爲myDict

NSDictionary * response = [myDict objectForKey:@"response"]; // this should have @status and authentication as keys 
NSDictionary * authentication = [response objectForKey:@"authentication"]; 
NSString * innerResponse = [authentication objectForKey:@"@response"]; 

if ([innerResponse isEqualToString:@"success"]) { 
    // your code 
} 
+0

好吧,以便似乎工作。當我做'[objectForKey:@「認證」]'我得到空,所以我開始'[objectForKey:@「響應」]',但那麼我應該如何下移到下一個(認證?) – davis 2012-01-03 04:41:14

+0

這是一種令人困惑,因爲響應包裹在身份驗證中被包裹在響應中... – davis 2012-01-03 04:42:04

+0

鑑於主對象是字典本身,在繼續之前,您應該從[objectForKey:@「response」]開始。然後在第二個響應請求[objectForKey @「@ response」]; – 2012-01-03 04:43:34