Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 如何以一套方法呈现词典?_Swift_Dictionary_Get_Set_Data Management - Fatal编程技术网

Swift 如何以一套方法呈现词典?

Swift 如何以一套方法呈现词典?,swift,dictionary,get,set,data-management,Swift,Dictionary,Get,Set,Data Management,我正试图从字典中为这个数据管理器类创建一个set-and-get方法,但我不知道如何在set-and-get方法中插入dictionary的值(我已将其从数组更改为Dic),谢谢 回答问题的关键是要知道要设置和获取的变量类型 在本例中,recordsArray变量是字符串值和键的字典数组:[[string:string]] 因此,传递此参数的一种方法是创建与其应设置的类型相同的变量: public func setRecordsArray(array:[[String:String]]) {

我正试图从字典中为这个数据管理器类创建一个set-and-get方法,但我不知道如何在set-and-get方法中插入dictionary的值(我已将其从数组更改为Dic),谢谢


回答问题的关键是要知道要设置和获取的变量类型

在本例中,recordsArray变量是字符串值和键的字典数组:[[string:string]]

因此,传递此参数的一种方法是创建与其应设置的类型相同的变量:

public func setRecordsArray(array:[[String:String]])  {
        self.recordsArray = array
        defaults.set(self.recordsArray, forKey: self.userRecord)
    }
它只是更新self.recordsArray变量的值,并在用户默认值中设置该值

get方法的工作原理类似,但是它返回的变量类型与应该返回的变量类型相同

在返回中添加了一个
,因为如果没有保存的用户数据,该方法将返回nil:

public func getRecordsArray() -> [[String:String]]?{
       if let array = defaults.object(forKey: self.userRecord) as? [[String:String]]{
            self.recordsArray = array
            return array
        }
        return nil
    }
此外,还可以为数组中的插入元素创建一个set方法。 在这种情况下,参数类型必须类似于[String:String],此数组的元素类型:

public func setRecord(record:[String:String])  {
        if let array = defaults.object(forKey: self.userRecord) as? [[String:String]]{
            self.recordsArray = array
            self.recordsArray.append(record)
            defaults.set(self.recordsArray, forKey: self.userRecord)
        } else{
            self.recordsArray.append(record)
            defaults.set(self.recordsArray, forKey: self.userRecord)
        }
    }

回答问题的关键是要知道要设置和获取的变量类型

在本例中,recordsArray变量是字符串值和键的字典数组:[[string:string]]

因此,传递此参数的一种方法是创建与其应设置的类型相同的变量:

public func setRecordsArray(array:[[String:String]])  {
        self.recordsArray = array
        defaults.set(self.recordsArray, forKey: self.userRecord)
    }
它只是更新self.recordsArray变量的值,并在用户默认值中设置该值

get方法的工作原理类似,但是它返回的变量类型与应该返回的变量类型相同

在返回中添加了一个
,因为如果没有保存的用户数据,该方法将返回nil:

public func getRecordsArray() -> [[String:String]]?{
       if let array = defaults.object(forKey: self.userRecord) as? [[String:String]]{
            self.recordsArray = array
            return array
        }
        return nil
    }
此外,还可以为数组中的插入元素创建一个set方法。 在这种情况下,参数类型必须类似于[String:String],此数组的元素类型:

public func setRecord(record:[String:String])  {
        if let array = defaults.object(forKey: self.userRecord) as? [[String:String]]{
            self.recordsArray = array
            self.recordsArray.append(record)
            defaults.set(self.recordsArray, forKey: self.userRecord)
        } else{
            self.recordsArray.append(record)
            defaults.set(self.recordsArray, forKey: self.userRecord)
        }
    }

你的意思是如何从函数体访问[:String,path:String]吗?是的@davidpasztor你的意思是如何从函数体访问[:String,path:String]吗?是的@davidpasztor非常感谢你-这就是答案!非常感谢,这就是答案!