Hen*_*oke 2 iphone core-data nspredicate nsmanagedobject
我有一个Core Data存储,其中许多实体应该是其特定NSEntityDescription的唯一实例.我目前通过为给定的描述创建一个新实体来做到这一点,然后:
-(void)clearMyManagedObjectsExceptFor:(NSManagedObject*)except {
NSArray *managedObjects = [ self fetchMyManagedObjectsWithPredicateOrNil: nil ];
// returns all managed objects for a given NSEntityDescription
NSManagedObject *managedObject;
for( NSUInteger i = 0; i < [ managedObjects count ]; i++ ){
managedObject = [ managedObjects objectAtIndex: i ];
if( ![ managedObject isEqual: except ] ){
[ managedObjectContext deleteObject: managedObject ];
}
}
}
Run Code Online (Sandbox Code Playgroud)
哪个有效,但感觉我应该能够做到这一点!=使用NSPredicate而不是迭代,但我无法弄清楚正确的谓词语法.任何人都可以开导我吗?
你可以这样做:
- (void) clearObjectsExceptFor:(NSManagedObject *)exception {
NSPredicate * allExcept = [NSPredicate predicateWithFormat:@"SELF != %@", exception];
NSArray * objects = [self fetchMyManagedObjectsWithPredicateOrNil:allExcept];
for (NSManagedObject * object in objects) {
[managedObjectContext deleteObject:object];
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2128 次 |
| 最近记录: |