我做了一个表格视图,即使在应用程序关闭后如何保存项目?

Posted

技术标签:

【中文标题】我做了一个表格视图,即使在应用程序关闭后如何保存项目?【英文标题】:I made a table view, how can I save the items even after the app is closed? 【发布时间】:2017-05-27 04:35:47 【问题描述】:

我正在制作我的第一个应用程序,它有一个任务管理器,为此,我制作了一个表格视图,您可以在其中通过警报输入“任务”。如何保存输入的“任务”?我做了一些研究,但是,我无法找到答案。 代码如下: (斯威夫特 2)

import UIKit

class ThirdViewController: UIViewController, UITableViewDataSource

var items: [String] = []
@IBOutlet weak var listTableView: UITableView!

@IBAction func additem(sender: AnyObject) 
alert()



@IBAction func savebtn(sender: AnyObject) 
print (items)




override func viewDidLoad() 
    super.viewDidLoad()
    listTableView.dataSource = self



func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 
    let cell = tableView.dequeueReusableCellWithIdentifier("listitem") as! ItemTableViewCell
    cell.itemLabel.text = items[indexPath.row]
    return cell


func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int 
    return items.count


func alert() 
    let alert = UIAlertController(title: "", message: "", preferredStyle: .Alert)

    alert.addTextFieldWithConfigurationHandler
    (textfield) in
    textfield.placeholder = "Enter your task"
    
    let add = UIAlertAction(title: "Add ", style: .Default) 
        (action) in
        let textfield = alert.textFields![0]
        self.items.append(textfield.text!)
        self.listTableView.reloadData()
        
    let cancel = UIAlertAction(title: "Cancel", style: .Cancel) 
        (alert) in

        print ("Hi")
    
alert.addAction(add)
alert.addAction(cancel)

presentViewController(alert, animated: true, completion: nil)


func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) 
    items.removeAtIndex(indexPath.row)
    tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Automatic)


override func didReceiveMemoryWarning() 
    super.didReceiveMemoryWarning()




【问题讨论】:

不相关,但如果您刚开始使用 Swift,为什么不使用 Swift 3? Swift 2 已过时,不再受支持。 您的问题和您的解释未同步。你说你想在应用程序关闭后保存。但是你解释说你不能在tableview中保存数据。哪个是正确的? 我建议你阅读 Core Data 并使用它;那么您的数据将“随时”保存 你会在 Swift 3 中找到很多教程,但是如果你只能在 Swift 2 中找到它们,我建议你不要复制/粘贴代码,而是开始输入 sytanx您会看到编译器可以自动完成 new 语法。但大多数情况下,它们都是简单的更改。要全面了解更改,请参阅here 【参考方案1】:

我不确定我是否正确理解了您的问题,但我认为阅读 Apple 的教程并遵循“持久数据”部分可能会有所帮助。

(链接:https://developer.apple.com/library/content/referencelibrary/GettingStarted/DevelopiosAppsSwift/PersistData.html#//apple_ref/doc/uid/TP40015214-CH14-SW1)

这是一个带有详细解释的分步教程。应该能够让您很好地了解如何为简单的应用程序保存数据。 (如果需要更大的数据库,Core Data 值得一读。)

【讨论】:

【参考方案2】:

您可以将任何内容保存在本地或云端,

本地 -> 核心数据或领域

云 -> 您的自定义 API(显然您还没有准备好)或云 API(如 Firebase、Backendless)

观看所有教程的一些教程,根据您的目的和未来对该应用的愿景选择一个。

祝你好运。

【讨论】:

他也可以使用userDefaults。但那是为了节省一些简单的小东西。对于真正的持久性,Core Data 或 Realm 要好得多【参考方案3】:
The easiest way to Persist Data or store data even after your application is terminated or closed is use RMMapper,it work like nsuserdefaults but by using RMMapper we can store whole object..
//set
UserDefaults.standard.rm_setCustomObject(Obj1, forKey: "myObject")

//retrive

let obj = UserDefaults.standard.rm_customObject(forKey: "myObject")

【讨论】:

以上是关于我做了一个表格视图,即使在应用程序关闭后如何保存项目?的主要内容,如果未能解决你的问题,请参考以下文章

ListView 位置关闭后不保存

在表格视图中选择项目后无法关闭弹出框

单视图应用程序中的 iOS iPad tableView [关闭]

MFC程序怎样实现“复制”“粘贴”功能,我做了一个程序,在窗口客户区显示表格和文字,但不能复制粘贴

Django的一些操作与视图函数

php.ini mysqli.allow_persistent 即使在 php 重启后也不会关闭