Я читаю изображение из библиотеки фотографий и получаю метаданные, используя библиотеку ресурсов. Затем я пытаюсь прочитать 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?
EDIT: DeePak Заметил, что я перепутал оператор присваивания и изменил его, но это не решило проблему. Пока я смотрел на это, я обнаружил, что мои NSLogs показывают, что код читает метаданные, которые передаются, а затем запускает словарь и строковый код, который на данный момент метаданные не создаются. Затем он завершает функцию делегата imagepicker, а затем в конечном итоге переходит к полному блоку, затем запускает код и выводит словарь, и тогда я вижу, что все правильно.
Как я могу заставить код работать немедленно или заставить программу ждать до завершения assetforurl?