KSExtensibleManagedObject 2.0.5

KSExtensibleManagedObject 2.0.5

测试测试
语言语言 Obj-CObjective C
许可证 MIT
发布最新发布2014年12月

未声明 维护。



  • 作者:
  • Mike Abdullah

功能

KSExtensibleManagedObject 扩展了 NSManagedObject 以支持类似字典的存储非模型属性。这在您想在管理对象模型上进行微小扩展,但又不想或不能迁移现有持久存储的情况下尤其有用。

联系

我是 Mike Abdullah,来自 Karelia Software。在 Twitter 上的网址是 @mikeabdullah

关于代码的问题应在 https://github.com/karelia/KSExtensibleManagedObject 上作为问题留下,或在 Twitter 上发消息给我。

依赖关系

  • 除了 Core Data 以外没有其他库依赖关系
  • 支持回到 OS X v10.5。
  • 但是,必须在发布之前在您的管理对象模型中实现 KSExtensibleManagedObject 的支持;详细信息请参见下文。

许可证

版权所有 © 2007 Karelia Software

任何人获得本软件及其相关文档文件("软件")的副本,免费获得在软件上不受限制的处理权,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或售卖软件副本的权利,并允许向软件提供副本的个人这么做,前提是满足以下条件

上述版权声明和本许可证声明应包括在软件的所有副本或主要部分中。

软件按“原样”提供,不提供任何形式,明示或暗示的保证,包括但不限于适销性、适用于特定目的和不受侵犯的保证。在任何情况下,作者或版权持有人在合同、侵权或其他行为中,不对任何索赔、损害或其他责任承担责任,这些索赔、损害或其他责任源于、产生于或与软件或软件的使用或其他交易有关。

用法

在设计您的托管对象模型时,对于您认为将来可能需要扩展属性支持的任何实体,请添加一个额外的data属性。默认情况下,KSExtensibleManagedObject假定该属性名为extensiblePropertiesData,因此您可能想要匹配该名称。但如果不是,则可以通过重写+extensiblePropertiesDataKey来提供自己的名称。

请注意,到目前为止,您还没有需要KSExtensibleManagedObject类本身。当/如果您确实需要其功能时

  1. KSExtensibleManagedObject.hKSExtensibleManagedObject.m添加到您的项目中。理想情况下,使此存储库成为子模块,但嘿,它是您的代码库,做您喜欢的事情。
  2. 使KSExtensibleManagedObject成为您自定义托管对象类的主类
  3. 调用-setExtensibleProperty:forKey:-removeExtensiblePropertyForKey:来修改扩展属性存储。请注意,值必须采用NSCoding才能存储
  4. 使用-extensiblePropertyForKey:extensibleProperties来检索值

如果需要,您可以进一步扩展,通过在您的自定义子类中重写-usesExtensiblePropertiesForUndefinedKey:来为未建模的密钥启用KVC和KVO(键值观察/编码)支持。

请参阅KSExtensibleManagedObject.h以获取一些可能有用的其他高级功能。