使用字典键和值

时间:2017-01-30 14:11:37

标签: swift xcode uitableview dictionary

我是开发应用程序的初学者,我尝试使用Xcode / Swift创建我的第一个真正的应用程序。

我遇到的问题是设置表格视图以显示某些信息。我成功地成功创建了其他表视图,但这个视图稍微复杂一些。我将通过分解来开始。

我有一个变量,它通过名为var recievedSelection = (choice: "", choiceValue:0.0)'选择'的segue接收数据。作为选择和选择的名称'是选择的成本。

然后我使用以下代码行将此数据存储到名为var dict:[String:Double] = ["":0.0]的字典数组中:

self.dict[self.recievedSelection.choice] = self.recievedSelection.choiceValue

我有一个表格视图,所有设置的代理方法等工作和dequeueReusableCellWithIdentifier("basic", forIndexPath: indexPath)。 numberOfSectionInTableView返回1和numberOfRowsInSection返回self.dict.count

我遇到的问题是使用每个键的数据'将self.dict设置为cell.textLabel?.text以及每个'值的数据'将self.dict设置为cell.detailTextLabel?.text,以便在tableView加载时,每个单元格中都可以看到该选择的名称和价格。一旦用户做出所有选择/选择,因为在整个应用程序中将会有一些选择/选择,应该有一个可以在此表视图中查看的选择/选项的列表。

然后有一个" Total"位于表格视图下方底部的金额,用于计算总金额。

我还设置了表格视图以删除单个单元格,当单元格被删除时,从屏幕底部的总数中扣除设置到该单元格中的金额/价格。

我正在使用NSUserDefaults来保存加载到表格视图中的数据,因为没有存储任何个人数据,这只是一个简短的估算。

但问题是,我无法通过表格视图加载“self.dict”的值和键。进入表格视图textLabeldetailTextLabel

我希望这是有道理的!我真的很感激任何帮助。

2 个答案:

答案 0 :(得分:0)

我将假设您想从Dictionary中获取UITableViewDataSource的值。一个数组会更好,你可以改变你的代码使用一个用于UIViewController的数据,但如果你必须,首先得到一组Dictionary的键到一个数组:

var myDataSource = Array(self.dict.keys)

在调用tableView.reloadData()之前,每次从Dictionary中编辑/删除此值都会重新分配,以避免索引超出范围崩溃。现在,在您的dataSource方法中,您可以检查

self.dict[myDataSource[indexPath.row]]

myDataSource[indexPath.row]

return self.dict.count

这将为您提供行数所需的数组大小,以及字典中所需的值和键。如果您愿意,还可以使用以下代码迭代Dictionary的键和值:

for (key, value) in self.dict {
    //do something
}

答案 1 :(得分:0)

我不完全确定你的问题导致了什么问题,这意味着我不确定你没有得到什么价值。但是,您可以使用以下方法获取这些值:

let keyArray = dict.allKeys 

然后在你的cellForIndexPath:

cell.textLabel.text? = keyArray[indexPath.row] //the "key"'s Value
cell.detailtextLabel.text? = dict[keyArray[indexPath.row]] // the "value"s value

希望这有助于解决您的问题吗?