我從照片庫中讀取圖像,並使用資產庫獲取元數據。然後我嘗試閱讀用戶評論exif標籤並將其顯示在我的文本視圖中。代碼在這裏:當從iPhone上的圖像讀取元數據時,<無效的CFStringRef>
[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;
當我運行它時,沒有崩潰但沒有任何顯示在textview中。我已經驗證了使用NSLogs從我的代碼收到的元數據是正確的,因爲我可以看到我的自定義exif用戶評論標籤。如果我把鼠標放在註釋上,它會給我錯誤。我無法擺脫這一點。
如何從元數據字典中讀取字符串並將其顯示在textView中?
編輯:DeePak注意到我混淆了一個賦值語句,我改變了它,但是沒有解決這個問題。雖然我正在研究這個,但我發現我的NSLogs顯示代碼是讀取元數據被傳遞,然後運行字典和字符串代碼,此時元數據不會被創建。然後它完成imagepicker委託函數,然後它最終進入完整的塊,然後運行代碼並輸出字典,然後我可以看到一切都是正確的。
我怎樣才能讓代碼直接運行或讓程序等待,直到assetforurl完成?
我改變了它,因爲你是正確的,但沒有解決我的問題。我用我的最新思路更新了我的問題(編輯)。該代碼在完成塊運行之前運行。我將如何暫停程序直至完成?有關更多詳情,請參閱我的問題編輯。 – SolidSnake4444