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 *descripTruncated = [itemDescriptionPre substringFromIndex:17];
でNSStringのを修正しようとしました。しかし、それはクラッシュを引き起こしませんでした実行時にまた、アイテムの最後にあるアイテムには対処しません。私は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
あなたは素晴らしいです!私はこれを次のように調整しました: 'NSDictionary * itemDescriptionPre = [photoDescriptions objectAtIndex:0]; NSString * itemDescription = [itemDescriptionPre objectForKey:@ "_ content"]; ' –
ニース!私は答えとして投稿します。自由に受け入れる;) – yuji