Cocoa——在应用程序更新中更改对象的类?
我的存储模型中有两个 WidgetClass 类的对象。每次应用程序退出时都会保存它们,并在每次启动时重新加载。我想更新我的模型以使其中之一成为 WidgetSubclass 对象。 WidgetSubclass 将是 WidgetClass 的子类。
WidgetClass 有相当多的 ivars。 WidgetSubclass 将添加很少或不添加。
完成更新最有效的方法是什么?我没有使用核心数据。
I have two objects of class WidgetClass in my stored model. They are saved each time the app exits and reloaded each time it starts. I want to update my model to make one of them a WidgetSubclass object. WidgetSubclass will be a subclass of WidgetClass.
WidgetClass has quite a lot of ivars. WidgetSubclass will add few or none.
What is the most efficient way to accomplish the update? I am not using core data.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
有几件事。
如果子类没有向超类添加任何 ivars,您实际上可以避免以下情况:
存在运行时中的更改可能会破坏上述代码的风险。所以这里有一个更安全的方法:
Foo.m:
现在我可以拥有以下 NSObject 类别方法:
Couple of things.
If the subclass does not add any ivars to the superclass, you can actually get away with the following:
There is some risk that changes in the runtime could break the above code. So here is a safer way:
Foo.m:
Now I can have the following NSObject category method: