Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/114.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios NSMutableArray在向数组添加UIImage后返回nil_Ios_Objective C_Xcode_Uiimage_Phphotolibrary - Fatal编程技术网

Ios NSMutableArray在向数组添加UIImage后返回nil

Ios NSMutableArray在向数组添加UIImage后返回nil,ios,objective-c,xcode,uiimage,phphotolibrary,Ios,Objective C,Xcode,Uiimage,Phphotolibrary,我想获取在photoLibrary中拍摄的最后一张照片,并将其添加到将在UIActivityViewController中使用的数组中。显示UIActivityViewController时,图像不会显示,并且似乎从未将UIImage添加到阵列中 这是我的 NSMutableArray *items = [[NSMutableArray alloc]init]; [items addObject:@"someText"]; PHFetchOptions *fetchOptions = [[PH

我想获取在photoLibrary中拍摄的最后一张照片,并将其添加到将在UIActivityViewController中使用的数组中。显示UIActivityViewController时,图像不会显示,并且似乎从未将UIImage添加到阵列中

这是我的

NSMutableArray *items = [[NSMutableArray alloc]init];
[items addObject:@"someText"];

PHFetchOptions *fetchOptions = [[PHFetchOptions alloc] init];
fetchOptions.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"creationDate" ascending:YES]];
PHFetchResult *fetchResult = [PHAsset fetchAssetsWithMediaType:PHAssetMediaTypeImage options:fetchOptions];
PHAsset *lastAsset = [fetchResult lastObject];


__block UIImage *shareImage;

PHImageRequestOptions* options = [[PHImageRequestOptions alloc]init];
options.resizeMode = PHImageRequestOptionsResizeModeExact;
options.deliveryMode = PHImageRequestOptionsDeliveryModeHighQualityFormat;
options.version = PHImageRequestOptionsVersionUnadjusted;
options.synchronous = YES;


[[PHImageManager defaultManager] requestImageForAsset:lastAsset


    targetSize:PHImageManagerMaximumSize
    contentMode:PHImageContentModeDefault
    options:PHImageRequestOptionsVersionCurrent
    resultHandler:^(UIImage *result, NSDictionary *info) {

    dispatch_async(dispatch_get_main_queue(), ^{



    shareImage = result;
    [items addObject:shareImage];  });



}];

NSMutableArray *activityItems = [NSMutableArray arrayWithArray:items];
UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
[self presentViewController:activityViewController animated:YES completion:nil];
任何帮助都将不胜感激。我对iOS开发和编程都是新手,我在这方面经历了一段非常艰难的时光


谢谢

您的
项目
数组中实际添加了
UIImage
。创建
activityItems
数组并显示
UIActivityViewController
时,添加
UIImage
的块可能尚未完成。如果您将呈现逻辑添加到块中(将图像添加到阵列后),它应该可以工作

- (void)yourMethod {
    NSMutableArray *items = [[NSMutableArray alloc] init];
    [items addObject:@"someText"];

    PHFetchOptions *fetchOptions = [[PHFetchOptions alloc] init];
    fetchOptions.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"creationDate" ascending:YES]];
    PHFetchResult *fetchResult = [PHAsset fetchAssetsWithMediaType:PHAssetMediaTypeImage options:fetchOptions];
    PHAsset *lastAsset = [fetchResult lastObject];

    PHImageRequestOptions *options = [[PHImageRequestOptions alloc]init];
    options.resizeMode = PHImageRequestOptionsResizeModeExact;
    options.deliveryMode = PHImageRequestOptionsDeliveryModeHighQualityFormat;
    options.version = PHImageRequestOptionsVersionUnadjusted;
    options.synchronous = YES;

    [[PHImageManager defaultManager] requestImageForAsset:lastAsset
                                               targetSize:PHImageManagerMaximumSize
                                              contentMode:PHImageContentModeDefault
                                                  options:PHImageRequestOptionsVersionCurrent
                                            resultHandler:^(UIImage *result, NSDictionary *info) {
                                                dispatch_async(dispatch_get_main_queue(), ^{
                                                    [items addObject:result];

                                                    [self presentActivityControllerWithItems:items];
                                                });
                                            }];
}

- (void)presentActivityControllerWithItems:(NSArray *)items {
    UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:items applicationActivities:nil];
    [self presentViewController:activityViewController animated:YES completion:nil];
}

你的代码很难读懂。请将其粘贴回去,并按照您在屏幕上看到的格式对其进行格式化。此外,您还没有具体说明出了什么问题。好的,我调整了代码,并在问题中添加了更多细节。调用UIActivityViewController时,UIImage未显示。似乎未将UIImage添加到阵列中。谢谢你的回复。这也正是我所想的。您是说我应该在[items addObject:shareImage];?下安装UIActivityViewController吗??这就是我所做的,但它不起作用。谢谢你的回复!文本(它是用UIImage实现的。安德烈,你帮了我很大的忙!!非常感谢你的帮助。