0

特定のエンティティのコア データに新しいデータを入力する際に​​、特定の属性のエントリが null かどうかを確認するにはどうすればよいですか? mail と mailedCustomer という 3 つの属性 name があります。次のようにデータを追加します。

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 I get what you want, your if statement is incorrect. You're now checking if it's NOT nil (meaning it has some value), and then you're resetting it to //. If you want it to be // and then append values, you have to check if it IS nil and then set it to //:

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 に答える