我必须根据Objective C中的api响应创建和删除属性。 例如,现在我的api响应包含字段“ facebook ”,“ whatsapp ”和“ viber ”。但在将来,响应可以添加“ youtube ”。基于此响应,我必须删除实体“社交”的所有属性和值,并立即创建四个属性并设置值。 如何以编程方式执行此操作?因为默认的* .xcdatamodeld文件无法帮助我,对吧? 注意:我的项目是目标C。
答案 0 :(得分:2)
数据模型在应用程序启动时是可变的 - 您可以在代码中完全构建模型,而不是使用模型编辑器。但是,只要加载持久性存储文件,必须将模型视为已修复。加载持久存储后的任何更改都将导致崩溃。这意味着在调用loadPersistentStores(completionHandler:)
或addPersistentStore(with:completionHandler:)
之前必须进行任何更改。
亚历山大对可选属性的建议是一个很好的建议。如果您需要更加动态的模型,则需要创建一个新的相关实体,该实体将存储服务名称以及您需要保存的有关服务的任何信息。如果您这样做,您的Social
实体将与称为Service
之类的新实体建立多对多关系。 Service
将有一个名为name
的字符串属性,其值为twitter,facebook,youtube等。它还具有您需要保存的有关服务的任何其他属性。