在UITextVield中返回Null值

时间:2014-05-12 14:52:31

标签: ios objective-c parse-platform

使用Parse.com作为我的后端,并尝试加载用户数据,但遇到问题,其中一个字段最初返回(null),当没有数据存在时默认。这是三个中只使用int作为数据类型而不是string的唯一。另外两个尝试加载字符串(默认情况下也不存在)不会在字段中返回(null)并且按预期为空。

代码(如你所见,我尝试用if条件检查Parse.com并在本地覆盖它,如果它是(null),或者至少我尝试 - 然后只在UITextField中显示任何内容而不是( null))没有运气!:

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
    PFUser *currentUser = [PFUser currentUser];
    self.age = [NSString stringWithFormat:@"%@", currentUser[@"age"]];
    if (self.age == nil ||  [self.age isEqual: @""])
    {

        self.age = @"0";
        NSLog(@"%@", self.age);
    }
    else{
        NSLog(@"%@", self.age);
    }
    self.usersHomeTown.text = currentUser[@"hometown"];
    self.usersAge.text = self.age;
    self.usersName.text = currentUser[@"name"];

}

1 个答案:

答案 0 :(得分:2)

问题是您不会检查currentUser[@"age"]是否为nil。所以你从它的任何地方创建字符串。结果字符串永远不会是nil。你想要:

PFUser *currentUser = [PFUser currentUser];
id age = currentUser[@"age"];
if (age) {
    self.age = [NSString stringWithFormat:@"%@", age];
else {
    self.age = @"0";
}

我不知道current[@"age"]是否会返回nil[NSNull null]。上面的代码假定它返回nil。如果它返回[NSNull null],则将if语句更改为:

if (age == [NSNull null]) {