我到处都在寻找errno 22的含义,但未能找到有关它的任何信息:
2020-06-24 11:39:09.483111-0600 MyApp [1773:478284]名为mkdir(“ / private / var / mobile / library / LiveFiles / com.apple.filesystems.userfsd / MyUSB // My_Files / myiphone / IMG_2302.JPG.sb-db06fe8e-O0frER“),它没有返回0,并且errno设置为22。 照片数据的最终副本= IMG_2302.JPG的673587字节
在遍历一组PHAsset并将其复制到外部驱动器时,我看到了这一点。前2000张照片全部正常,然后此报告之后的所有照片突然报告errno 22。
我尝试使用try / catch捕获有关此错误的更多详细信息,但没有发现任何错误。所以,我认为它来自Foundation中的某个地方?
内存使用率一直保持较低,大约为40MB。
errno 22表示该问题是什么?
我要复制的循环的相关部分如下。使用data.write还是Filemanager.default.createfile,都会看到相同的问题:
_ = autoreleasepool {
PHImageManager.default().requestImageDataAndOrientation(
for: mediaFile,
options: options) { (data, dataUTI, orientation, info) in
if data != nil {
self.imgData = data!
}
}
}
let toFileNameURL = destinationPathURL.appendingPathComponent(currentFileName)
let completed = FileManager.default.createFile(atPath: toFileNameURL.path, contents: imgData, attributes: nil)
print("copy worked? \(completed)")
//try self.imgData.write(to: toFileNameURL, options: .atomic)