首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在iOS中未实现谓词的SQL生成

在iOS中未实现谓词的SQL生成
EN

Stack Overflow用户
提问于 2016-05-09 11:19:47
回答 1查看 1.4K关注 0票数 1

我在核心数据中得到以下错误

代码语言:javascript
复制
 *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unimplemented SQL generation for predicate (mRemainderId LIKE <MSaveRemainders: 0x1740cae90>

下面是我使用的代码

代码语言:javascript
复制
  -(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)";})

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-09 11:51:47

因为您试图在不包含NSString的数组中访问NSString,所以您的数组只包含MSaveRemainders,因此您应该获得类MSaveRemainders的对象并检查它的属性,所以您的方法应该如下所示

代码语言:javascript
复制
-(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];
        }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37114459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档