iOS中谓词的未实现SQL生成

iOS中谓词的未实现SQL生成,ios,objective-c,core-data,Ios,Objective C,Core Data,我在核心数据中得到以下错误 *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unimplemented SQL generation for predicate (mRemainderId LIKE <MSaveRemainders: 0x1740cae90> 删除数组包含 (实体:MSaverEminders;id:0xd000000000040002;数据

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

 *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unimplemented SQL generation for predicate (mRemainderId LIKE <MSaveRemainders: 0x1740cae90>
删除数组包含

(实体:MSaverEminders;id:0xd000000000040002;数据:{ 进一步子类别ID=零; mDate=“2016-05-10”; mNote=“这是财务方面的”; mNumberOfGlasses=6; mRemainderId=1462793810; mRepeat=无; mRepeatDays=“”; mSleepTime=“晚上10:00”; mSnooze=No; mTime=“(\n\“05:06 pm\”\n)”; mTitle=金融; mTone=“”; mWakeUpTime=“06:00 AM”; mWaterInLitres=“1.6”; 肌重=50; mainCategoryId=1; 子类别ID=“(空)”;
})

因为您试图在不包含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];
        }
    }
}

因为您试图访问不包含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];
        }
    }
}

您的
deleteArray
将只保存
字符串
?或者它持有其他对象?似乎
remainderId
MSaveRemainders
对象,而不是
NSString
。您可能正在查找
[NSPredicate predicateWithFormat:@“mRemainderId LIKE%@”,reminderId.mRemainderId]
。@请查看已编辑的包含删除的问题array@mortgy请参见已编辑的包含删除的问题array@Larme请参阅包含删除数组的已编辑问题您的
deleteArray
将仅包含
字符串
?或者它持有其他对象?似乎
remainderId
MSaveRemainders
对象,而不是
NSString
。您可能正在查找
[NSPredicate predicateWithFormat:@“mRemainderId LIKE%@”,reminderId.mRemainderId]
。@mortgy请查看包含delete的已编辑问题array@mortgy请参见已编辑的包含删除的问题array@Larme请参见[savedReminder.data valueForKey:@“mRemainderId”]什么是
数据
属性的类型?粘贴到此处时
(实体:MSaveRemainders;id:0xd000000000040002;数据:{FurtherSubcategory id=nil;..
您的MSaveRemainders包含两个属性,
id
data
数据似乎与不同的模型相关,那么什么是
data
属性类型?在[savedReminder.data valueForKey:@“mRemainderId”]中的数据是什么类型的
数据
属性?粘贴到这里时
(实体:MSaverEminders;id:0xd000000000040002;数据:{FutureSubcategory id=nil;..
您的MSaverEminders包含两个属性,
id
data
数据似乎与不同的模型相关,那么什么是
data
属性类型?