我遇到了一個問題,正確訪問從Flickr數據(flickr.photosets.getPhotos調用)構建的NSDictionary。它不僅僅顯示描述標籤的內容,而是讀取描述標籤......以及一些不必要的數據和引號。處理從Flickr解析的NSDictionary內容
例如:
NSLog (@"Item description readout: %@", itemDescriptionPre);
產生這樣的響應:
Item description readout: {
"_content" = "This is a caption from a photo drawn through Flickr";
}
我試圖修改的NSString這個
NSString *descripTruncated = [itemDescriptionPre substringFromIndex:17];
但它並沒有導致系統崩潰在運行時。它也不涉及項目結尾的項目。我很抱歉,因爲NSString的修改似乎在這裏被討論了很多,但我無法找到反映我的情況。
下面是一些更多的上下文我的代碼:
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
NSString *jsonString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"Storing incoming data");
NSDictionary *results = [jsonString JSONValue];
NSLog(@"Building NSDictionary.");
NSArray *photos = [[results objectForKey:@"photoset"] objectForKey:@"photo"];
NSLog(@"Building array from dictionary.");
// Loop through each entry in the dictionary...
for (NSDictionary *photo in photos)
{
NSString *title = [photo objectForKey:@"title"];
NSString *description = [photo objectForKey:@"description"];
[photoTitles addObject:title];
[photoDescriptions addObject:description];
}
NSLog(@"Nicer display for results: %@ First image title: %@ First image description: %@", results, [photoTitles objectAtIndex:0], [photoDescriptions objectAtIndex:0]);
[self updateDisplay];
}
-(void) updateDisplay{
NSString *capTitle = [[photoTitles objectAtIndex:0] uppercaseString];
photoTitleDisplay.text = capTitle;
NSString *itemDescriptionPre = [photoDescriptions objectAtIndex:0];
NSLog (@"Item description readout: %@", itemDescriptionPre);
}
你確定'itemDescriptionPre'是一個NSString?如果不是,它應該是一個NSDictionary,你可以使用'objectForKey:'。如果沒有,爲什麼不採用它的'JSONValue'? – yuji 2012-03-27 18:16:40
你太棒了!我把它調整爲:'NSDictionary * itemDescriptionPre = [photoDescriptions objectAtIndex:0]; NSString * itemDescription = [itemDescriptionPre objectForKey:@「_ content」];' – 2012-03-27 19:59:09
好的!我會將其作爲答案發布。隨意接受;) – yuji 2012-03-27 20:03:22