swift - 将 UIImage 保存到 plist 问题(SWIFT)

标签 swift uiimage plist

简单地说, 如果该图像是从 UIImagePickerController(相机或照片库)中选择的,然后使用 NSKeyedArchiver 存储到对象的实例变量中,我可以将 UIImage 编码为 .plist...

func imagePickerController(picker: UIImagePickerController!, didFinishPickingImage image: UIImage!, editingInfo: NSDictionary!) {
   let selectedImage : UIImage = image
    myObject.image = selectedImage
    ...
}

但是,如果该图像存在于我的应用程序包中并分配给这样的变量,我不能将 UIImage 编码为 .plist...

myObject.image = UIImage(named: "thePNGImage")

...thePNGImage.png 位于我的应用程序包中。我可以随时在我的应用程序中显示它,但我无法在 plist 中存储和恢复它!

我希望用户从他或她的相机或照片库中选择一张个人资料图片,并从我的应用程序包中为他们的个人资料分配一张默认图片,如果他们不选择自己的一张的话。后者给我带来了问题。

如有任何帮助,我们将不胜感激。

谢谢!

最佳答案

首先,您不需要任何 plist。如果您想保存用户的首选项,请使用 NSUserDefaults(这是一个 plist,但它是为您维护的)。

其次,您不应该将图像保存到 plist 中。保存对图像的引用,例如它的网址。这样当你再次需要它时,你可以再次找到它。图像很大;一个 URL 很小。

最后,根据我的理解,你想知道用户是否选择了一张图片,如果没有,你想使用你的图片作为默认图片。 NSUserDefault 可以为此包含一个 Bool 值,或者您可以只使用缺少图像 URL 来表示“使用默认值”。

但在任何情况下,您都可以根据之前保存的任何信息在应用程序下次启动时恢复状态,这完全取决于您。没有什么事情会自己神奇地发生。如果您的图像在您下次启动时没有神奇地恢复,那是因为没有将它恢复。您的应用在启动和创建界面时必须有代码/逻辑来执行此操作。

关于swift - 将 UIImage 保存到 plist 问题(SWIFT),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27198307/

相关文章:

ios - 将图像从应用程序复制到文档目录并在之后重写

iphone - 将数据写入plist

swift - 两次调用 Swift 的 readline 到同一个变量会忽略第二次调用

swift - 如何将 map 缩放设置设置为 20 - Skobbler map

ios - 创建 UIImageView 时上下文无效

macos - AppleSymbolicHotKeys plist dict 中的参数值代表什么?

objective-c - iOS 检查远程服务器 plist 文件是否是本地存储文件的新版本?

ios - 无法分配泛型类型的值

ios - Swift 动画问题

swift - 将图像检索到 3 个 ImageView (Firebase 和 Swift)