0

在给给定实体的核心数据中输入新数据时,如何检查特定属性的条目是否为空?我有三个属性名称,mail 和 mailedCustomer。我添加数据如下:

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)
4

2 回答 2

2

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

if (!data.mailedCustomer) {
    NSLog(@"inside condition");
    [data setMailedCustomer:@"//"];
}
于 2012-10-18T04:37:15.073 回答
1
@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
}
于 2013-05-27T14:09:29.840 回答