在 IOS swift 应用程序中重写或删除现有的 .png 文件
Posted
技术标签:
【中文标题】在 IOS swift 应用程序中重写或删除现有的 .png 文件【英文标题】:Rewrite or delete existing .png file in IOS swift apllication 【发布时间】:2016-09-21 21:18:06 【问题描述】:我想在我的 .png 图像上添加文本,它存在于我的 swift 应用程序中,并用这个编辑后的图像替换我的旧图像。 但是当我试图删除旧图像时,我收到了错误消息:
Error : Error Domain=NSCocoaErrorDomain Code=513 "“Background.png”
couldn’t be removed because you don’t have permission to access it."
UserInfo=NSFilePath=/var/containers/Bundle/Application/57134C17-50A5-
4709-9E3B-8013733175BA/SignatureApp.app/Background.png, NSUserStringVariant=(
Remove
), NSUnderlyingError=0x12cd8c150 Error
Domain=NSPOSIXErrorDomain Code=1 "Operation not permitted"
我用来删除旧 png 文件的代码是:
让 path = NSBundle.mainBundle().pathForResource("Background", ofType: "png")!
let fileManager = NSFileManager.defaultManager()
do
try fileManager.removeItemAtPath(path)
catch let error as NSError
print("Error: \(error)")
谁能告诉我如何?
【问题讨论】:
您最初是如何设置该图像的?在 Xcode 中使用图像资源,对吗?所以用新文件替换 imageAssets 中的那个文件。 不,它不在图像资源中,它直接在 Xcode 中,对于该解决方案,我无法使用图像资源 【参考方案1】:我不相信你能做到这一点。该图像是您的应用程序包的一部分。您需要上传一个新的应用程序。
相反,您可以将图像存储在文档或缓存目录中,并在您的代码中检查该文件是否存在并加载它而不是 Background.png
。
【讨论】:
这是您应该采取的方法。如果需要,您甚至可以将您的应用程序应该使用的新路径写入NSUserDefaults
。这也可以让您从头开始生成多个图像,以防万一,您知道,您的用户更改了您叠加的任何值。以上是关于在 IOS swift 应用程序中重写或删除现有的 .png 文件的主要内容,如果未能解决你的问题,请参考以下文章
Swift - 如何检查现有的 Core Data Store iOS
将现有的移动应用程序从 Android Native(Java) 和 IOS Native(Swift) 迁移到 React Native
使用 Swift 5 - PDFKit 在 iOS 中编辑和保存现有的 pdf 文档
Xcode:如何将 Unity 游戏添加到现有的 iOS 应用程序?