【发布时间】:2014-11-29 02:44:10
【问题描述】:
简单地说, 如果从 UIImagePickerController(相机或照片库)中选择该图像,我可以将 UIImage 编码为 .plist,然后使用 NSKeyedArchiver 将其存储到对象的实例变量中......
func imagePickerController(picker: UIImagePickerController!, didFinishPickingImage image: UIImage!, editingInfo: NSDictionary!) {
let selectedImage : UIImage = image
myObject.image = selectedImage
...
}
但是,如果该图像存在于我的应用程序包中并分配给这样的变量,我不能将 UIImage 编码为 .plist...
myObject.image = UIImage(named: "thePNGImage")
...PNGImage.png 在我的应用程序包中的位置。我可以随时在我的应用程序中显示它,但我无法存储它并在 plist 中恢复它!
我希望用户从他或她的相机或照片库中选择一张个人资料图片,并在我的应用程序包中为他们的个人资料分配一张默认图片,以防他们选择自己的一张。后者给我带来了问题。
任何帮助将不胜感激。
谢谢!
【问题讨论】:
-
UIImage(named: "thePNGImage")将无法在您应用的沙盒中找到图像。它会在你的应用 bundle 中找到一张图片。 -
对不起,我是菜鸟。我的意思是应用程序包而不是沙盒。至于如何将选取器中的图像存储到 plist 中,我只是将 imagePickerController 的委托方法选择的图像分配给对象实例变量(func imagePickerController(picker: UIImagePickerController!, didFinishPickingImage image: UIImage!, editingInfo: NSDictionary!) { let selectedImage : UIImage = image myObject.image = selectedImage . . . 该对象稍后使用 NSKeyedArchiver 进行编码。完美地保存和检索图像!(下文继续)
-
当我想将我的应用程序包中的 UIImage 分配给我无法保存和恢复的对象实例变量时。所以当我做这样的事情时...... myObject.image = UIImage(named: "thePng")... 它会添加图像并且运行良好,直到应用程序关闭并重新启动。然后图像就丢失了。
-
这与 plist 有什么关系?如果图像在您的应用程序包中,则无需将其保存在任何地方;它就在您的应用程序包中,并且永远存在。你能改写问题来解释问题到底是什么吗?