- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
// directoryPath is a URL from another VC
@IBAction func saveButtonTapped(sender: AnyObject) {
let directoryPath = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)[0] as NSURL
let urlString : NSURL = directoryPath.URLByAppendingPathComponent("Image1.png")
print("Image path : \(urlString)")
if !NSFileManager.defaultManager().fileExistsAtPath(directoryPath.absoluteString) {
UIImageJPEGRepresentation(self.image, 1.0)!.writeToFile(urlString.absoluteString, atomically: true)
displayImageAdded.text = "Image Added Successfully"
} else {
displayImageAdded.text = "Image Not Added"
print("image \(image))")
}
}
我没有收到任何错误,但图像没有保存在文档中。
最佳答案
问题在于您正在检查文件夹是否不存在,但您应该检查文件是否存在。代码中的另一个问题是您需要使用 url.path 而不是 url.absoluteString。您还可以使用“png”文件扩展名保存 jpeg 图像。您应该使用“jpg”。
编辑/更新:
Swift 4.2 或更高版本
do {
// get the documents directory url
let documentsDirectory = try FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false)
print("documentsDirectory:", documentsDirectory.path)
// choose a name for your image
let fileName = "image.jpg"
// create the destination file url to save your image
let fileURL = documentsDirectory.appendingPathComponent(fileName)
// get your UIImage jpeg data representation and check if the destination file url already exists
if let data = image.jpegData(compressionQuality: 1),
!FileManager.default.fileExists(atPath: fileURL.path) {
// writes the image data to disk
try data.write(to: fileURL)
print("file saved")
}
} catch {
print("error:", error)
}
要在目的地写入图像,无论图像是否已存在,您都可以使用.atomic
选项,如果您想避免覆盖现有图像,您可以使用withoutOverwriting
改为:
try data.write(to: fileURL, options: [.atomic])
关于ios - 如何使用 writeToFile 将图像保存到文档目录中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55322333/
我有一些代码将一些 PDFDocument 对象写入用户选择的目的地。这很好用。 也许其中一些文件(由用户选择)可能非常大(可能数百兆字节),现在我想知道是否有可能取消当前的 writeToFile:
我在我的代码中使用 NSDictionary 的 writeToFile 属性,我正在尝试将字典更新到文档目录,如下所示, NSDictionary *revisionDict = [NSDictio
func fetchFromInternet(){ let i = Int(DISPATCH_QUEUE_PRIORITY_HIGH.value) let que = dispatch
我有以下代码: NSString *errorStr = nil; NSData *plistData = [NSPropertyListSerialization dataFromPropertyL
我正在将一些数据写入我的文档目录,我想知道是否有一种方法可以判断我的 writeToFile 方法何时完成以及我正在创建的文件是否已完全创建。提前致谢 这是我正在调用的方法 我只是在寻找一种方法,无论
我不明白为什么它总是失败。它返回NO。我整个下午都在搜索这个问题,但没有任何解释为什么或如何解决。调用 [[NSFileManager defaultManager] isWritableFileAt
我有一个正在更改的 plist: NSString *finalPath = [path stringByAppendingPathComponent:@"KeyFrameFileByMovie.pl
每次我使用相机拍照,然后保存时,图像总是横向的。这意味着我的 Xib 中的 UIImageView 是错误的。它的肖像 - 这就是我想要和期望的。我可以通过将图像旋转 90 度来纠正此问题,但即使如此
我试图将一个数组(其中包含一些字典)保存到 plist 文件中,但失败了。我没有收到任何错误。我在代码中使用另一个数组执行了与上面完全相同的几行,并且有效。.我不明白为什么它不保存文件。 这是我保存文
只要方法调用发生在同一应用程序运行时,似乎 writeToFile 方法就会附加到当前存在的文件路径。这是真的? 是否有任何其他方法可以确保在应用程序 session 运行时附加到现有文件?我希望在新
我正在尝试用 swift 将内容写入文件 let jsonResult = try! NSJSONSerialization.JSONObjectWithData(response.data, o
在我的 iPhone 应用程序中,我正在从网络上下载一些图像。它是否阻塞 UI 线程并不重要,事实上它需要阻塞 UI 线程直到完全下载。完成后,我通知 UI 唤醒并显示它们。 我的(简化的)代码是这样
我正在将我的 UITextView 文本保存到文件 test.txt 中 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocument
// directoryPath is a URL from another VC @IBAction func saveButtonTapped(sender: AnyObject) {
我目前正在编写一个简单的 IOS 应用程序,它将任务保存到表中。我想扩展该应用程序并允许人们与其他人共享“列表”。在将其保存到 XML 或 URL 之前,我想使用 writeToFile:atomic
我已成功使用 Plist 在我的 iPhone 应用程序中读取和写入数据。 Plist 由数组中的字典组成。当我想附加字典时,我使用 writeToFile 方法。这很有效,但它会覆盖整个 Plist
每次按下保存按钮时,我都会尝试将图像保存到磁盘。这是我正在使用的代码: NSArray* documentDirectories = NSSearchPathForDirectoriesInDomai
我使用有效的字典运行以下代码,但仍然“未写入”: NSFileManager* fm = [[NSFileManager alloc] init]; __autoreleasing NSError
我将新收到的 PDF 文档的缩略图呈现到文档目录中。 我正在使用以下代码: CFURLRef pdfURL = CFBundleCopyResourceURL(CFBundleGetMainBundl
ios 声称文件已写入,但更改从未实际保存,就好像它们保留在缓冲区中一样。我需要冲洗什么的吗? - (void)viewDidLoad { [super viewDidLoad]; N
我是一名优秀的程序员,十分优秀!