我是开发应用程序的初学者,我尝试使用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”的值和键。进入表格视图textLabel
和detailTextLabel
?
我希望这是有道理的!我真的很感激任何帮助。
答案 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
希望这有助于解决您的问题吗?