2016-08-30 2 views
-1

я следующий метод и код для получения пути изображения,Хотите значение переменной «имя_файла»

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 

    NSURL *imageURL = [info valueForKey:UIImagePickerControllerReferenceURL]; 
    ALAssetsLibraryAssetForURLResultBlock resultblock = ^(ALAsset *myasset) 
    { 
     ALAssetRepresentation *representation = [myasset defaultRepresentation]; 
     fileName = [representation filename]; 
     NSLog(@"fileName : %@",fileName); 
    }; 

    ALAssetsLibrary* assetslibrary = [[ALAssetsLibrary alloc] init]; 
    [assetslibrary assetForURL:imageURL 
        resultBlock:resultblock 
        failureBlock:nil]; 


    UIImage *chosenImage = info[UIImagePickerControllerEditedImage]; 
    self.profileImg.image = chosenImage; 

    [picker dismissViewControllerAnimated:YES completion:NULL]; 
    profileImg.hidden = NO; 

} 

Теперь я хочу значение FileName в другом методе, который,

- (IBAction)registerBtn:(UIButton *)sender { 
    NSLog(@"fileName path = %@", fileName); 
} 

В журнале результат Я получаю «null»

В моем файле .h у меня есть переменная fileName.

Итак, как я могу получить значение этой переменной?

+0

, когда вы вызывали кнопку, это сразу или некоторая временная задержка –

+0

В моем вызове кнопки, после того, как я нажимаю кнопку, он сохраняет данные поля в базе данных @ Anbu.Karthik – KAR

ответ

1

Ваш метод registerBtn должен быть вызван после полного выбора изображения (то есть вашего didFinishPickingMediaWithInfo`).

Вторая вещь, если вы просто хотите установить уникальное имя для своего изображения, тогда вы должны использовать time stamp.

Вы можете получить метаданные принимаемого изображения в didFinishPickingMediaWithInfo как,

NSDictionary *metadata = info[UIImagePickerControllerMediaMetadata]; 

NSLog(@"%@", metadata); 

затем из meradata словаря вы можете получить значение DateTimeOriginal, который даст дату подборщика СМИ.

Смежные вопросы