How to check dictionary value is empty or not

一曲冷凌霜 提交于 2019-12-11 02:43:20

问题


i am new to swift and facing little issue and i not understanding how to check dictionary value.

func doValidate(data:Dictionary<String,AnyObject>,isEmail : String) -> Bool {
    if(isEmail=="signup"){
        if( data["last_name"] == nil || data["email"] == nil || data["password"] == nil || data["first_name"] == nil){
            return false;
        }
        else{
            return true;
        }
    }
}

Dictionary key is always constant and every time dictionary key exists but how i can check

value of data["last_name"] is empty or not?

if i used loop then its working but why single value not work?

for( myKey,myValue ) in data { 
    if(myValue as! String == ""){ // Work Perfect
        return false;
    }
}

回答1:


Check length if you wanna check your string value. for example

func doValidate(data:Dictionary<String,AnyObject>,isEmail : String) -> Bool {
        if(isEmail=="signup"){
            if( data["last_name"]?.length == 0 || data["email"]?.length == 0 || data["password"]?.length == 0 || data["first_name"]?.length == 0){
                return false;
            }
            else{
                return true;
            }
        }
    }



回答2:


For checking the value use objectForKey()
Here is modified code

func doValidate(data:Dictionary<String,AnyObject>,isEmail : String) -> Bool {
if(isEmail=="signup"){
    if( data.objectForKey("last_name") == nil || data.objectForKey("email") == nil || data.objectForKey("password") == nil || data.objectForKey("first_name") == nil){
        return false;
    }
    else{
        return true;
    }
   }
 }



回答3:


You could consider the syntax introduced with Swift 1.2 inverting your if logic, obtaining something like this:

func doValidate(data:Dictionary<String,AnyObject>,isEmail : String) -> Bool {

    if(isEmail == "signup"){
        if let lastName = data["last_name"] as? String,
            let email = data["email"] as? String,
            let password = data["password"] as? String,
            let firstName = data["first_name"] as? String
            where
            !lastName.isEmpty &&
            !email.isEmpty &&
            !password.isEmpty &&
            !firstName.isEmpty {
                return true
        }
    }

    return false
}


来源:https://stackoverflow.com/questions/30473841/how-to-check-dictionary-value-is-empty-or-not

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!