2017-02-22 104 views
2

我有這樣的字典:夫特:比較字典鍵

var dataDictionary : [String:String] = ["Result" : "result", "Date Added" : "dateAdded", "Entered By" : "enteredBy"] 

來存儲該鍵和值我已經作出了陣列敵我一個鍵和值是這樣的:

var selectedDictKeys :[String] = [String]() 
var selectedDictValues :[String] = [String]() 

並保持鍵和值到數組是這樣的:

self.selectedDictKeys = Array(self.dataDictionary.keys) 
self.selectedDictValues = Array(self.dataDictionary.values) 

這是我defaultName中模型類:

class DefaultNameModel: EVObject { 
    var key : String = "" 
    var value : String = "" 
} 

現在,我怎麼打印設定值的數值如..

self.selectedDictKeys = Array(self.dataDictionary.keys) 
self.selectedDictValues = Array(self.dataDictionary.values) 

var dataSet = [DefaultNameModel]() 
for i in 0...(self.selectedDictKeys.count-1) 
{ 
    let dataRow = DefaultNameModel() 
    dataRow.key = String(self.selectedDictKeys) 

    if dataRow.key == "Result" 
    { 
     dataRow.value == "Success" 
     dataSet.append(dataRow) 
     print("The data Row is\(dataRow)")   
    } 

    if dataRow.key == "Date Added" 
    { 
     dataRow.value == "2016-12-12" 
     dataSet.append(dataRow) 
     print("The data Row is\(dataRow)") 
    } 

    if dataRow.key == "Entered By" 
    { 
     dataRow.value == "Me" 
     dataSet.append(dataRow) 
     print("The data Row is\(dataRow)") 
    } 
} 
+0

如果你知道鍵和值都爲什麼你創建字典只需創建DefaultNameModel對象和數組中的對象。 –

+0

我必須在表格 – Sam

+0

附加這個,所以我該怎麼做..你可以請建議我.. ?? – Sam

回答

1
 var dataSet = [DefaultNameModel]() 
     for i in self.selectedDictKeys 
     { 
      let dataRow = DefaultNameModel() 
      dataRow.key = i 

      if dataRow.key == "Result" 
      { 
       dataRow.value == "Success" 
       dataSet.append(dataRow) 
       print("The data Row is " + dataRow.Key + " " + dataRow.value) 

      } 

      if dataRow.key == "Date Added" 
      { 
       dataRow.value == "2016-12-12" 
       dataSet.append(dataRow) 
       print("The data Row is " + dataRow.Key + " " + dataRow.value) 

      } 
      if dataRow.key == "Entered By" 
      { 
       dataRow.value == "Me" 
       dataSet.append(dataRow) 
       print("The data Row is " + dataRow.Key + " " + dataRow.value) 

      } 
     } 
+0

謝謝.... :)保存了一天 – Sam

2
for key in self.selectedDictKeys { 
    let dataRow = DefaultNameModel() 
    dataRow.key = key 

    switch key { 
    case "Result": 
     dataRow.value == "Success" 
    case "Date Added": 
     dataRow.value == "2016-12-12" 
    case "Entered By": 
     dataRow.value == "Me" 
    default: 
     dataRow.value == "" 
    } 

    dataSet.append(dataRow) 
    print("The data Row is\(dataRow)") 
} 
+0

感謝您的回答.....它也可以工作 – Sam

1

我看到你正在使用EVReflection(EVObject是你的基本類型)。然後,您可以基於字典啓動對象。你爲什麼不把數據的值放在字典中?甚至更好,爲什麼不創建一個具有常規屬性而不是鍵和值屬性的對象。下面是一些示例代碼的工作原理:

func testxx() { 
    // Why not setting the values in the dictionary? 
    let dataDictionary: NSDictionary = ["Result" : "Success", "Date Added" : "2016-12-12", "Entered By" : "Me"] 

    // Then you could just map it to the model using: 
    let defaultNameModel: [DefaultNameModel] = dataDictionary.map { DefaultNameModel(dictionary: ["key": $0.key, "value": $0.value]) } 
    print("defaultNameModelOld = \(defaultNameModel)") 

    // But you could directly map it to a real model 
    let defaultNameModelNew = DefaultNameModelNew(dictionary: dataDictionary) 
    print("defaultNameModelNEw = \(defaultNameModelNew)") 
} 

class DefaultNameModel: EVObject { 
    var key: String? 
    var value: String? 
} 

class DefaultNameModelNew: EVObject { 
    var Result: String? 
    var Date_Added: String? 
    var Entered_By: String? 
} 
+0

是的謝謝:) – Sam