我对NSPRedicate有问题;它返回零值。但是我的ObjectType看到了;也许predecateFormat有问题?

我有3个对象,并且按类型获取。资源:

typedef NS_ENUM(NSUInteger, ObjectType) {
    FirstType,
    SecondType,
    ThdType,
};


然后我处理CoreData请求:

- (NSArray *)objectsByType:(ObjectType)type{
    NSFetchRequest *request = [[NSFetchRequest alloc] init];
    [request setEntity:[self objectEntity]];

        NSPredicate *pred = [NSPredicate predicateWithFormat:@"self.objectType == %d", type];
        [request setPredicate:pred];

    NSError *err = nil;
    NSArray *objects = [[self managedContext] executeFetchRequest:request error:&err];

    if(err){

        DLog(@"Failed to fetch objects %@", [err localizedDescription]);
    }

    return objects;
}


我认为问题就在这里。

最佳答案

将您的类型设置为NSNumber,因为这是存储在Core Data中的内容。 @"self.objectType == %@", @(type)

关于ios - NSPredicate类型对象问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25720158/

10-14 20:32
查看更多