我在App Store上有一個現有的應用程序,突然發現了一些與iOS7.1更新相關的問題。這是我無法擺脫我的頭,雖然它應該(它過去)工作。我試圖檢查JSON字符串的「成功」鍵是否等於'1'。比較在iOS7.1上破壞的JSON數據
AFJSONRequestOperation *op = [AFJSONRequestOperation JSONRequestOperationWithRequest:req success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
[[AFNetworkActivityIndicatorManager sharedManager] decrementActivityCount];
if ([[JSON objectForKey:@"Success"] isEqualToValue:[NSNumber numberWithInt:1]]) {
// succeeded
NSLog(@"Reached success while submitting");
} else {
NSLog(@"JSON: %@", [JSON objectForKey:@"Success"]);
// Success was not 0
}
}failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) {
// parse/download error
}];
程序總是達到else
聲明,即使成功的關鍵是1.這裏是JSON對象的調試打印:
Printing description of JSON:
{
EntryId = 5235;
EntryLink = "https://cpdme.wufoo.com/api/v3/forms/z7x4a9/entries.json?Filter1=EntryId+Is_equal_to+5235";
Success = 1;
}
請打印解析的實際數據。可能是服務器正在爲EntryId和Success發送字符串;不幸的是,當你打印解析的字典時你看不到這個。或者檢查[[JSON objectForKey:@「Success」是KindOfClass:[NSNumber類]]還是[NSString類]。 – gnasher729
當然,印刷的說明顯示了這一點?如果他們是字符串,他們會被包裹在雙引號中,比如'EntryLink'是? –
查看關於@ Wain的答案的評論 - 兩個類都是相同類型('NSNumber') –