2

我正在尝试获取它,所以如果我的用户中的一个键(虚拟货币为空)默认为它,那么它将它设置为字符串值 0。

我已经尝试过了,但由于某种原因它似乎不起作用?

PFUser *currentUser = [PFUser currentUser];
if ([currentUser[@"Money"]  isEqual: @""])
{
    currentUser[@"Money"] = @"0";

}
4

3 回答 3

2
PFUser *currentUser = [PFUser currentUser];
if ([currentUser[@"Money"]  isEqual: [NSNull null]])
{
    currentUser[@"Money"] = @"0";

}
于 2013-11-02T19:14:34.413 回答
1

PFObject(的子类PFUser)故意表现得像NSDictionary你可以在 Parse 文档中读到的那样objectForKey:

返回值
与给定键关联的值,或者nil如果没有值与键关联。

因此,如果您想检查 是否PFUser为键设置了值,则必须检查nil,例如

if (currentUser[@"Money"] == nil) {
    currentUser[@"Money"] = @"0";
}
于 2013-11-02T20:29:08.403 回答
0

如果 currentUser[@"Money"] 是一个 NSString 试试这个:

PFUser *currentUser = [PFUser currentUser];
if ([currentUser[@"Money"]  isEqualToString:@""])
{
    currentUser[@"Money"] = @"0";

}

您也可以检查是否[string length] == 0. 这将检查它是否是一个有效但为空的字符串 (@"") 以及它是否为 nil,因为在 nil 上调用 length 也将返回 0。

如果是 NSNumber 尝试:

PFUser *currentUser = [PFUser currentUser];
if (currentUser[@"Money"]==nil)
{
    currentUser[@"Money"] = @"0";

}
于 2013-11-02T18:26:56.593 回答