我在核心数据中得到以下错误
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unimplemented SQL generation for predicate (mRemainderId LIKE <MSaveRemainders: 0x1740cae90>下面是我使用的代码
-(void) deleteRemainders:(NSMutableArray*) deleteArray{
NSEntityDescription *entity = [NSEntityDescription entityForName:@"MSaveRemainders" inManagedObjectContext:self.managedObjectContext];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
for (NSString *remainderId in deleteArray) {
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"mRemainderId LIKE %@", remainderId];
[fetchRequest setEntity:entity];
[fetchRequest setPredicate:predicate];
[fetchRequest setReturnsObjectsAsFaults:NO];
NSError *error;
NSArray *fetchedObjects = [self.managedObjectContext executeFetchRequest:fetchRequest error:&error];
for (NSManagedObject *managedObject in fetchedObjects) {
[self.managedObjectContext deleteObject:managedObject];
}
}
}删除数组
(实体: MSaveRemainders;id: 0xd000000000040002;数据:{ furtherSubCategoryId =零;mDate = "2016-05-10";mNote =“金融”;mNumberOfGlasses = 6;mRemainderId = 1462793810;mRepeat =无;mRepeatDays = "";mSleepTime =“上午10:00”;mSnooze =不;mTime = "(\n 05:06 pm\n)“;mTitle =金融;mTone =”06: AM";mWaterInLitres = "1.6";mYourWeight = 50;mainCategoryId = 1;subCategoryId = "(null)";})
发布于 2016-05-09 11:51:47
因为您试图在不包含NSString的数组中访问NSString,所以您的数组只包含MSaveRemainders,因此您应该获得类MSaveRemainders的对象并检查它的属性,所以您的方法应该如下所示
-(void) deleteRemainders:(NSMutableArray*) deleteArray{
NSEntityDescription *entity = [NSEntityDescription entityForName:@"MSaveRemainders" inManagedObjectContext:self.managedObjectContext];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
for (MSaveRemainders *savedReminder in deleteArray) {
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"mRemainderId LIKE %@", [savedReminder.data valueForKey:@"mRemainderId"]];
// or like the follwing if "data" is a property of a class ( model )
/*
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"mRemainderId LIKE %@", savedReminder.data.mRemainderId ];
*/
[fetchRequest setEntity:entity];
[fetchRequest setPredicate:predicate];
[fetchRequest setReturnsObjectsAsFaults:NO];
NSError *error;
NSArray *fetchedObjects = [self.managedObjectContext executeFetchRequest:fetchRequest error:&error];
for (NSManagedObject *managedObject in fetchedObjects) {
[self.managedObjectContext deleteObject:managedObject];
}
}
}https://stackoverflow.com/questions/37114459
复制相似问题