使用核心数据将单元格添加到收藏夹表视图

Add cell to favorites tableview with core data

我有一个 iOS 应用程序,我想让人们在表格视图单元格上滑动以将该单元格添加到收藏夹页面表格视图。

它必须使用核心数据,以便收藏夹在应用程序退出后保存。

如有任何帮助,我们将不胜感激!

这是我到目前为止的单元格滑动操作:

override func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [UITableViewRowAction]? {

    let favorite = UITableViewRowAction(style: .Normal, title: "Favorite") { (action, indexPath) in
        // share item at indexPath
        self.editing = false
        print("Favorited \(indexPath.row)")


    }

    favorite.backgroundColor = UIColor.greenColor()

    return [favorite]
}

这是我的收藏夹页面代码。

var favorites : [String] = []

override func viewDidLoad() {
    super.viewDidLoad()
    favorites = vars.favs
    self.tableView.reloadData()
}



override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return favorites.count
}

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath)
    let object = favorites[indexPath.row]
    cell.textLabel!.text = object 
    return cell
}

这是如何添加收藏夹的图片:

如果您只需要将收藏夹列表作为字符串保存在您的应用程序中,您可以简单地使用 NSUserDefaults 而不是 Core Data。

要保存一组收藏夹:

let favorite = UITableViewRowAction(style: .Normal, title: "Favorite") { (action, indexPath) in
    var favorites : [String] = []
    let defaults = NSUserDefaults.standardUserDefaults()
    if let favoritesDefaults : AnyObject? = defaults.objectForKey("favorites") {
        favorites = favoritesDefaults! as [String]
    }

    favorites.append(tableView.cellForRowAtIndexPath(indexPath).textLabel!.text)
    defaults.setObject(favorites, forKey: "favorites")
    defaults.synchronize()
}

要阅读收藏夹页面中的收藏夹数组:

var favorites : [String] = []

override func viewDidLoad() {
    super.viewDidLoad()

    let defaults = NSUserDefaults.standardUserDefaults()
    if let favoritesDefaults : AnyObject? = defaults.objectForKey("favorites") {
        favorites = favoritesDefaults! as [String]
    }

    self.tableView.reloadData()
}