如何在TableView中保存数据?

时间:2018-11-02 12:36:52

标签: ios swift uitableview core-data nsuserdefaults

在我的应用中,我有一个标签,当用户点击视图以摇动iPhone时,它将随机更改报价。如果用户双击同一视图,则应将报价保存在TableView中。 一开始,我以为我可以使用CoreData,但他没有用。现在,我使用的是UserDefaults,现在,如果我双击该视图,将保存引用,但一次只保存一个。我想要做的是,他创建了一个用户双击的所有报价的列表。

以下是doubleTap对象中的代码:

let savedQuotes = UserDefaults.standard.setValue(quoteLabel.text!, forKey: "saveQuotes")

    if let printSavedQuotes = UserDefaults.standard.string(forKey: "saveQuotes"){

        print(printSavedQuotes)

    }

这是我在TableVIew内部使用的代码:

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

    _ = UserDefaults.standard.string(forKey: "saveQuotes")

    return 15

}


override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "QuoteCell", for: indexPath)

    if let printSavedQuotes = UserDefaults.standard.string(forKey: "saveQuotes"){

        cell.textLabel?.text = "\(printSavedQuotes)"

    }

这是问题的图像。

Here's an image of the problem

2 个答案:

答案 0 :(得分:2)

请在Swift中了解Collections。您要寻找的是Array类型。一种类型,表示以特定顺序存储的元素的集合。

文档: https://developer.apple.com/documentation/swift/array

现在,当您学习如何将内容保存到数组中时,可以将此数组连接到tableView

最基本的设置是:

var quotes: [String] = ["quote1", "quote2", "quote3"]

numberOfRowsInSection中,您返回quotes.count

并在cellForRow中输入您的cell.textLabel.text == quotes[indexPath.row]

答案 1 :(得分:0)

请尝试以下方法。

df[(df['claim_staus'].apply(lambda x: 11 in x)) & (df['claim_status_reason'].apply(lambda x: 'a1' in x))]

这只是一个示例,推荐的方法是使用sqlite或core-data代替UserDefaults存储持久性数据。