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