gpt4 book ai didi

iphone - 当 View 包含带有自定义图像的 UIButton 时,UIViewControllerencodeWithCoder 失败

转载 作者:行者123 更新时间:2023-11-29 04:57:58 25 4
gpt4 key购买 nike

基本上,我的问题正是标题中所说的。当我尝试对 UIViewController 的子类进行编码时,调用 [superencodeWithCoder] 会给出 NSInvalidArgumentException。具体来说,我得到 -[UIImageencodeWithCoder:]: unrecognized selector sent to instance XxXXXXXX

View 中唯一的图像位于 UIButton 上,它也应该符合 NSCoding,并且堆栈跟踪包含对 [UIBUttonencodeWithCoder] 的调用。该按钮是使用 [UIButton buttonWithType:UIButtonTypeCustom] 以编程方式创建的,并且使用 setImage: forState: 设置图像。我真的不知道这里发生了什么事。我是否遗漏了一些明显的东西,或者 UIButton 只是不真正符合 NSCoding

最佳答案

我无法想象为什么您想要在应用程序中存档 View 对象,但您可能需要通过在 UIImage 上编写类别来添加 NSCoding 支持。

详情请参阅:iPhone - Why does the documentation say UIImageView is NSCoding compliant?

View 对象支持 NSCoding,因为 View 加载系统使用它从 Nib 文件加载对象。但是 UINib 类做了一些 NSKeyedArchiver 没有做的额外工作。

如果您只想存储启动之间的状态,最好存储数据而不是查看状态。特别是如果您计划更新应用程序并对 View 布局进行任何更改。 (这就是模型/ View / Controller 分离背后的动机。)

关于iphone - 当 View 包含带有自定义图像的 UIButton 时,UIViewControllerencodeWithCoder 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7589806/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com