Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.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 照片在保存到目录时替换_Ios_Directory_Save - Fatal编程技术网

Ios 照片在保存到目录时替换

Ios 照片在保存到目录时替换,ios,directory,save,Ios,Directory,Save,我正在使用代码 NSArray *directoryNames = [NSArray arrayWithObjects:@"hats",@"bottoms",@"right",@"left",nil]; NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths obje

我正在使用代码

NSArray *directoryNames = [NSArray arrayWithObjects:@"hats",@"bottoms",@"right",@"left",nil];
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents folder

    for (int i = 0; i < [directoryNames count] ; i++) {
        NSString *dataPath = [documentsDirectory stringByAppendingPathComponent:[directoryNames objectAtIndex:i]];
        if (![[NSFileManager defaultManager] fileExistsAtPath:dataPath])
            [[NSFileManager defaultManager] createDirectoryAtPath:dataPath withIntermediateDirectories:NO attributes:nil error:nil]; //Create folder

        NSString *folderPath = [documentsDirectory stringByAppendingPathComponent:@"hats"]; // "right" is at index 2, per comments & code
        NSString *filePath = [folderPath stringByAppendingPathComponent:@"IMAGE_NAME_HERE.PNG"]; 
        NSData *imageData = UIImagePNGRepresentation(captureImage.image);
        [imageData writeToFile:filePath atomically:YES];
    }
NSArray*directoryNames=[NSArray数组中的对象:@“hats”、@“bottoms”、@“right”、@“left”、nil];
NSArray*Path=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,是);
NSString*documentsDirectory=[paths objectAtIndex:0];//获取文档文件夹
对于(int i=0;i<[directoryNames计数];i++){
NSString*dataPath=[DocumentsDirectoryStringByAppendingPathComponent:[directoryNames objectAtIndex:i]];
如果(![[NSFileManager defaultManager]fileExistsAtPath:dataPath])
[[NSFileManager defaultManager]createDirectoryAtPath:dataPath with IntermediateDirectory:无属性:nil错误:nil];//创建文件夹
NSString*folderPath=[DocumentsDirectoryStringByAppendingPathComponent:@“hats”];/“right”位于索引2,根据注释和代码
NSString*filePath=[folderPath stringByAppendingPathComponent:@“IMAGE_NAME_HERE.PNG”];
NSData*imageData=UIImagePNGRepresentation(captureImage.image);
[imageData WriteFile:文件路径原子:是];
}

保存,但它总是替换自己,所以我不能保存多张照片。我应该如何使它停止这样做而不复制自己

根据以下代码,您总是保存到同一个位置:

NSString *folderPath = [documentsDirectory stringByAppendingPathComponent:@"hats"]; // "right" is at index 2, per comments & code
        NSString *filePath = [folderPath stringByAppendingPathComponent:@"IMAGE_NAME_HERE.PNG"]; 
        NSData *imageData = UIImagePNGRepresentation(captureImage.image);
        [imageData writeToFile:filePath atomically:YES];
在数组中循环只是每次都将所有内容保存到“hats”路径。您已经通过dataPath对象基于数组对象计算了存储图像的位置。你只是没有用它做任何事。相反,请执行以下操作:

for (int i = 0; i < [directoryNames count] ; i++) {
        NSString *dataPath = [documentsDirectory stringByAppendingPathComponent:[directoryNames objectAtIndex:i]];
        if (![[NSFileManager defaultManager] fileExistsAtPath:dataPath])
            [[NSFileManager defaultManager] createDirectoryAtPath:dataPath withIntermediateDirectories:NO attributes:nil error:nil]; //Create folder
        [imageData writeToFile:dataPath atomically:YES];
    }
for(int i=0;i<[directoryNames count];i++){
NSString*dataPath=[DocumentsDirectoryStringByAppendingPathComponent:[directoryNames objectAtIndex:i]];
如果(![[NSFileManager defaultManager]fileExistsAtPath:dataPath])
[[NSFileManager defaultManager]createDirectoryAtPath:dataPath with IntermediateDirectory:无属性:nil错误:nil];//创建文件夹
[imageData WriteFile:数据路径原子:是];
}