Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/35.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
Iphone 将图像保存到照片库,但有时无法正常工作_Iphone - Fatal编程技术网

Iphone 将图像保存到照片库,但有时无法正常工作

Iphone 将图像保存到照片库,但有时无法正常工作,iphone,Iphone,我使用下面的代码将图像保存到照片库 for(int i=0;i<[imageNameArray count];i++) { NSMutableString *sss=[[NSMutableString alloc] initWithString: myAppPath]; [sss appendString:@"/"] ; [sss appendString: [NSString stringWithFormat:@"%@",[imageNameArray o

我使用下面的代码将图像保存到照片库

 for(int i=0;i<[imageNameArray count];i++)
{


    NSMutableString *sss=[[NSMutableString  alloc] initWithString: myAppPath];
    [sss appendString:@"/"] ;
    [sss appendString: [NSString stringWithFormat:@"%@",[imageNameArray objectAtIndex:i]  ] ] ;
    UIImage *image = [[[UIImage alloc] initWithContentsOfFile:sss]autorelease];
    UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);
    [sss release];

}

for(int i=0;i快速连续保存图像可能是一个问题,因此,保存调用重叠。(将图像写入磁盘所需的时间比从函数返回所需的时间更长)

据我所知,save image函数是异步的,允许注册委托/回调(在传递nil的地方)

您可能应该等到一个图像写完后再开始另一个图像

您可以使用委托和回调对此进行设计。为了更好地为用户服务,并让他们了解正在发生的事情,您可以显示进度条和其他信息,如“已保存1/3图像”等

编辑:

为了获得更好的上下文,我查阅了文档:

UIImageWriteToSavedPhotosAlbum
函数声明如下:

void UIImageWriteToSavedPhotosAlbum (
   UIImage  *image,
   id       completionTarget,
   SEL      completionSelector,
   void     *contextInfo
);
您应设置
completionTarget
(可能是
self
)和
completionSelector
,其应具有以下签名:

- (void)               image: (UIImage *) image
    didFinishSavingWithError: (NSError *) error
                 contextInfo: (void *) contextInfo;

在完成选择器中,您可以执行是否需要执行另一次保存的逻辑,并更新“进度”UI。

快速连续保存图像可能是一个问题,因此,保存调用重叠。(将映像写入磁盘的时间比从函数返回的时间长)

据我所知,save image函数是异步的,允许注册委托/回调(在传递nil的地方)

您可能应该等到一个图像写完后再开始另一个图像

您可以使用委托和回调对此进行设计。为了更好地为用户服务,并让他们了解正在发生的事情,您可以显示进度条和其他信息,如“已保存1/3图像”等

编辑:

为了获得更好的上下文,我查阅了文档:

UIImageWriteToSavedPhotosAlbum
函数声明如下:

void UIImageWriteToSavedPhotosAlbum (
   UIImage  *image,
   id       completionTarget,
   SEL      completionSelector,
   void     *contextInfo
);
您应设置
completionTarget
(可能是
self
)和
completionSelector
,其应具有以下签名:

- (void)               image: (UIImage *) image
    didFinishSavingWithError: (NSError *) error
                 contextInfo: (void *) contextInfo;
在完成选择器中,您可以执行是否需要执行另一次保存的逻辑,并更新“进度”UI