核心数据 - 检查null - iOS

时间:2012-10-18 04:30:42

标签: ios xcode core-data attributes

在我的给定实体的核心数据中输入新数据时,如何检查特定属性的条目是否为空? 我有三个属性 姓名,邮件和邮件客户。 我按如下方式添加数据:

SalesPerson *data = (SalesPerson *)[NSEntityDescription         insertNewObjectForEntityForName:@"SalesPerson" inManagedObjectContext:self.managedObjectContext];
[data setName:name];
[data setEmail:userEmail];
 NSLog(@" mailed personel%@",data.mailedCustomer);
if([data.mailedCustomer != nil){
    NSLog(@"inside condition");
    [data setMailedCustomer:@"//"];
}

这对我不起作用。我试图附加一些字符串。因此,当我第一次进入时,我需要该属性为@“//”,然后追加进一步调用。

 NSLog(@" mailed personnel %@",data.mailedCustomer); 

上面的NSLog给了我:

  mailed personnel (null)

2 个答案:

答案 0 :(得分:2)

如果我得到你想要的,你的if语句是不正确的。您现在正在检查它是否为零(意味着它有一些值),然后您将其重置为//。如果你希望它是//然后追加值,你必须检查它是否为nil然后将其设置为//:

if (!data.mailedCustomer) {
    NSLog(@"inside condition");
    [data setMailedCustomer:@"//"];
}

答案 1 :(得分:2)

@interface NSObject (PE)
- (BOOL) isNull:(NSObject*) object;
- (BOOL) isNotNull:(NSObject*) object;
@end


@implementation NSObject (PE)

- (BOOL) isNull:(NSObject*) object {
    if (!object)
        return YES;
    else if (object == [NSNull null])
        return YES;
    else if ([object isKindOfClass: [NSString class]]) {
        return ([((NSString*)object) isEqualToString:@""]
                || [((NSString*)object) isEqualToString:@"null"]
                || [((NSString*)object) isEqualToString:@"<null>"]);
    }
    return NO;
}

- (BOOL) isNotNull:(NSObject*) object {
    return ![self isNull:object];
}

@end
















if([self isNotNull:some object])
{
not null
}
else
{
null
}