想要变量值" fileName"

时间:2016-08-30 13:59:24

标签: ios objective-c xcode

我有以下获取图像路径的方法和代码,

- (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变量。

那我怎样才能得到这个变量的值?

1 个答案:

答案 0 :(得分:1)

完全选择图像(即你的didFinishPickingMediaWithInfo`)后,必须调用你的registerBtn方法。

如果您只是想为图片设置唯一名称,那么您应该使用time stamp

您可以在didFinishPickingMediaWithInfo中获取已挑选图片的元数据,

   NSDictionary *metadata = info[UIImagePickerControllerMediaMetadata];

NSLog(@"%@", metadata);

然后从meradata字典中,您可以获取DateTimeOriginal的值,这将提供媒体的选择日期。