Gre*_*reg 6 iphone core-data ios
在CoreData for iPhone应用程序中,是否可以在多列上具有唯一约束?
例如:
所以问题是:
去做
对于任何核心数据约束,您可以在一次操作多个单独的托管对象时查看实现:
- (BOOL)validateForDelete:(NSError **)error
- (BOOL)validateForInsert:(NSError **)error
- (BOOL)validateForUpdate:(NSError **)error
Run Code Online (Sandbox Code Playgroud)
(我通常有核心数据为实体制作.h和.m文件,然后为这样的事情制作我自己的类别,所以如果我稍后更改实体,我没有那么多的工作)
如果您有某些东西只需要确保单个托管对象中的值是正确的,您可以使用 -validate<Key>:error:
为了做你想要的,我会让EventItems的validateForInsert/validateForUpdate调用一个常用的方法(也许是validateUniqueOrder).在该方法中,我将使用从EventItems到Event的关系,然后获取与Event相关的所有EventItem,然后检查唯一性.我有很少的关系,所以我没有任何花哨的东西,但如果你有很多与给定事件相关的事件项,你可以查看NSFetchRequests的setPropertiesToFetch方法.或者也许你可以提出一个可以直接搜索重复值的查询(我从来没有,所以如果你这样做,请在这里回复以启发我).
归档时间: |
|
查看次数: |
2310 次 |
最近记录: |