【发布时间】:2011-07-03 00:08:35
【问题描述】:
我从照片库中读取图像并使用资产库获取元数据。然后我尝试阅读用户评论 exif 标签并将其显示在我的文本视图中。代码在这里:
[assetLibrary assetForURL:assestURL resultBlock:^(ALAsset *asset) {
ALAssetRepresentation *representation = [asset defaultRepresentation];
NSMutableDictionary *metadataDictPhoto = (NSMutableDictionary*)[representation metadata];
NSLog(@"This is the read metadata I believe: %@",[metadataDictPhoto description]);
metadataDictPhoto = metadataGlobal;
} failureBlock:^(NSError *error) {
NSLog(@"%@",[error description]);
}];
NSMutableDictionary *exifDictionary = (NSMutableDictionary*)[metadataGlobal objectForKey:(NSString*) kCGImagePropertyExifDictionary];
NSString *comment = (NSString*)[exifDictionary valueForKey:(NSString*)kCGImagePropertyExifUserComment];
textView.text = comment;
当我运行它时,没有崩溃,但文本视图中没有显示任何内容。我已经使用 NSLogs 验证了从我的代码接收到的元数据是正确的,因为我可以看到我的自定义 exif 用户评论标签。如果我将鼠标放在评论上,它会给我错误。我无法摆脱它。
如何从元数据字典中读取字符串并将其显示在 textView 中?
编辑:DeePak 注意到我混淆了一个赋值语句并更改了它,但这并没有解决问题。虽然我正在研究这个,但我发现我的 NSLogs 显示代码是读取元数据的代码被传递,然后它运行字典和字符串代码,此时元数据没有创建。然后它完成 imagepicker 委托函数,然后它最终进入完整块,然后运行代码并输出字典,然后我可以看到一切都是正确的。
如何让代码立即运行或让程序等待assetforurl 完成?
【问题讨论】:
标签: iphone xcode image metadata nsdictionary