使用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"];
}
答案 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]) {