如何在字典中添加值?

时间:2017-03-19 19:16:06

标签: ios swift uitableview nsmutabledictionary

我正在制作iOS笔记,需要一个标题和笔记的应用程序。我的标题为textField,笔记为textView。然后我将这两个添加到一个数组中并将它们添加到我的tableView中,我们可以看到标题和注释。我使用的代码会在tableView中附加我的所有笔记,并为所有标题显示相同的内容。我知道我必须使用dictionary,但我该如何实现呢?这是具有textViewtextField

的VC代码
@IBAction func addItem(_ sender: Any)
{
        list.append(textField.text!)
        list2.append(notesField.text!)
}

其中listlist2为空array 在我的tableView我有可展开的单元格,其中textView显示list2的内容,该VC的代码为:

override func awakeFromNib() {
    super.awakeFromNib()

    textView.text = list2.joined(separator: "\n")

}

2 个答案:

答案 0 :(得分:2)

只需要一个字典数组

var arrOfDict = [[String :AnyObject]]()
var dictToSaveNotest = [String :AnyObject]()

@IBAction func addItem(_ sender: Any)
{
  dictToSaveNotest .updateValue(textField.text! as AnyObject, forKey: "title")
  dictToSaveNotest .updateValue(NotesField.text! as AnyObject, forKey: "notesField")
  arrOfDict.append(dictToSaveNotest)
}

只需在tableView数据源方法中填充它只需在tableViewCell类中创建两个出口titleLable和notesLabel

 func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
 var cell = self.tableView.dequeueReusableCellWithIdentifier("cell") as! yourTableViewCell

        cell.titleLabel.text = arrayOfDict[indexPath.row]["title"] as! String!
        cell.notesLabel.text = arrayOfDict[indexPath.row]["notesField"] as! String!

        return cell
    }

注意:我没有在代码上测试它,但希望它能肯定工作。        祝一切顺利 。

答案 1 :(得分:1)

通过分配:

,您可以在Swift中向字典添加元素
var dict = [String : String]()

let title = "My first note"
let body = "This is the body of the note"

dict[title] = body // Assigning the body to the value of the key in the dictionary

// Adding to the dictionary
if dict[title] != nil {
    print("Ooops, this is not to good, since it would override the current value") 

    /* You might want to prefix the key with the date of the creation, to make 
    the key unique */

} else {
// Assign the value of the key to the body of the note
    dict[title] = body
}

然后,您可以使用元组循环遍历字典:

for (title, body) in dict {
    print("\(title): \(body)")
}

如果你只对身体或头衔感兴趣,你可以通过用_代替标题或正文来忽略另一个:

for (_, body) in dict {
    print("The body is: \(body)")
}
// and
for (title, _) in dict {
    print("The title is: \(title)")
}

标题/正文也可以通过字典的键或值属性访问:

for title in dict.keys {
    print("The title is: \(title)")
}
// and
for body in dict.values {
    print("The body is: \(body)")
}