Parse.com:如何正确检查字段是否为空?

时间:2014-11-20 11:28:11

标签: ios swift parse-platform

我在iOS / Swift应用程序的上下文中问这个:

当使用查询从Parse检索对象时,我曾经通过检查nil来检查空字段。 if!= nil ....然后这样做等等......

显然,这不是执行此操作的正确方法,因为即使Parse上的字段为空,也不会被swift视为nil。

那么要检查以确定字段是否为空,以及各种Parse支持的类型:字符串,数字,数组.....?

编辑:Objective-c的答案在swift中不起作用,除非value是一个布尔值,你必须将它与nil(这里引起问题)或其他东西进行比较,看它是否存在。

6 个答案:

答案 0 :(得分:2)

您可以使用whereKeyExists:

结帐Parse documentation

如果要检索具有特定键集的对象,可以使用whereKeyExists。相反,如果您想要检索没有特定对象的对象 密钥集,你可以使用whereKeyDoesNotExist。

// Finds objects that have the score set
[query whereKeyExists:@"score"];

答案 1 :(得分:2)

好的,这是我在调查后发现的:

在解析浏览器上看起来为空的字符串字段,实际上包含""。只有当该领域特别具有" undefined"在它中它是零,你可以与===而不是==进行比较。不知道为什么,如果有人知道......

除String之外的其他字段,不能包含""。它们包含值或未定义。

因此,如果你需要知道一个字段是否为零或者不包含任何值,如果它是一个字符串,则将其与==""进行比较。和=== nil,如果它不是字符串,则使用=== nil。

答案 2 :(得分:1)

这是我用来检查包含文件的字段是否为空。由于该值可以是(undefined)或(null)。

func isParseNull(obj : AnyObject!) -> Bool {
    if obj == nil {
        return true
    }
    if obj as NSObject == NSNull() {
        return true
    }
    return false
}

答案 3 :(得分:0)

我非常确定Parse文档说的是!= nil但是你可以试试

entity == ""

答案 4 :(得分:0)

我会扩展String类并执行以下操作

   extension String {
         func isOnlyEmptySpacesAndNewLineCharacters() -> Bool {
         return self.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet()).length == 0
         }
}

答案 5 :(得分:0)

这是我的方法,因为我也很难检查字符串在解析时是否为空,这似乎工作正常。

- (void) nameCheck    
{
    //--------GET CURRENT USER-------//
    PFUser *user = [PFUser currentUser];
    //----------CHECK IF PARSE IS EMPTY OR TEXTFIELD IS EMPTY-----------//
    if ([user[@"fullname"]  isEqual: @""] || [fieldName.text isEqual:nil])
    {
        //-IF EMPTY, GIVE USER ANONYMOUS NAME-//
        user[@"fullname"] = @"Anonymous User";
        user[@"fullname_lower"] = @"anonymous user";

        //------------------SAVE NEW NAME IN BACKGROUND----------------//
        [user saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error)
         {
             if (error == nil)
             {
                 NSLog(@"Saved Username");
             }
         }];
    }
    //--ELSE USER'S NAME EXISTS--//
    else
    {
    //--LOAD USER METHOD--//
    [self loadUser];
    NSLog(@"User has username");
    }
}