Ios 如何检查NSString类型的DB对象是否为空?

Ios 如何检查NSString类型的DB对象是否为空?,ios,objective-c,core-data,iphonecoredatarecipes,Ios,Objective C,Core Data,Iphonecoredatarecipes,我只想获取那些没有NSString类型的nulllastname的用户 NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; NSEntityDescription *entity = [NSEntityDescription entityForName:@"USER" inManagedObjectContext:dbHandler.managedObjectContext]; NSMutableArray

我只想获取那些没有NSString类型的nulllastname的用户

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"USER" inManagedObjectContext:dbHandler.managedObjectContext];

    NSMutableArray * predicateArray = [[NSMutableArray alloc] init];

    NSPredicate * predicate1 = [NSPredicate predicateWithFormat:@"id = %@",abc];
    [predicateArray addObject:predicate1];

    NSPredicate * predicate2 = [NSPredicate predicateWithFormat:@"lastname != %@",nil];
    [predicateArray addObject:predicate2];

    NSCompoundPredicate * resultantPredicate = [NSCompoundPredicate andPredicateWithSubpredicates:predicateArray];

    [fetchRequest setEntity:entity];
    [fetchRequest setPredicate:resultantPredicate];

    NSError *fetchError = nil;

    NSArray *result = [dbHandler.managedObjectContext executeFetchRequest:fetchRequest error:&fetchError];

Predicate2由于某些原因无法工作。应用它后,即使DB包含一些lastname的非空字符串值,也不会返回任何对象。请说明代码中有什么错误,或者是否有任何方法仅从核心数据中获取非空字符串。

您可以使用描述的方法

替换

[NSPredicate predicateWithFormat:@"lastname != %@",nil]

更新

此谓词将返回nil对象

[NSPredicate predicateWithFormat:@"lastname = NULL"];
[NSPredicate predicateWithFormat:@"lastname = NIL"];
此谓词将返回空字符串

[NSPredicate predicateWithFormat:@"lastname = ''"];

将单词
nil
直接放在格式字符串中。nil,nil,Null不起作用@Divjyot-尝试一次重复的答案,如果重复的答案没有解决您的问题,我将再次打开您的问题,并尝试NSPredicate*predicateName=[NSPredicate predicateWithFormat:@“name!=nil,name!=”@Anbu.Karthik否,原始答案已经提到它将不适用于核心数据……长度属性在核心数据中不可用,如果字符串为空,则将失败(因为0==0)。类似地,如果name为nil,它也将失败,因为[nil length]==0。正如So中的wriiten所述,当用户将空字符串作为“lastname”时,如果用户将“nil”作为lastname,则情况将不同,对吗?nil可以显示为空lastname,但空字符串@“”不等于nil。@Divjyot,我知道:),但这取决于您的逻辑。这两种情况的逻辑是否相同……让我们来看看。
[NSPredicate predicateWithFormat:@"lastname = ''"];