当前位置 : 主页 > 手机开发 > ios >

如何删除coredata(实体)ios swift中的行

来源:互联网 收集:自由互联 发布时间:2021-06-11
我是我的应用程序中的CORE DATA的新手我正在使用coredata. 我只是将数据存储在我的核心数据中.我的实体名称是“FEED”,我有一个名为“title”,“id”,“link”,“desc”的行,所以现在我想基
我是我的应用程序中的CORE DATA的新手我正在使用coredata.
我只是将数据存储在我的核心数据中.我的实体名称是“FEED”,我有一个名为“title”,“id”,“link”,“desc”的行,所以现在我想基于“id”删除特定行.那怎么能这样呢?

这是我的代码,

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

    cell.pinButton.tag = indexPath.row
    cell.pinButton.addTarget(self, action: #selector(MessageViewController.buttonDeletePressed(_:)), forControlEvents: UIControlEvents.TouchUpInside)
    cell.selectionStyle = .None



        person = people[indexPath.row]
        cell.lbl_title_msg_music.text = person!.valueForKey("title") as? String
        cell.img_message_music.image = UIImage(named: "PlaceHolder")
        cell.desc_msg_music.text = person!.valueForKey("desc") as? String


    return cell
}

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

        print(people.count)
        return people.count


}

func buttonDeletePressed(sender:UIButton) {


}
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

    let cell : MessageMusicCell = tableView.dequeueReusableCellWithIdentifier("MessageMusicCell") as! MessageMusicCell


}

那怎么能这样呢?

试试这样,

func buttonDeletePressed(sender:UIButton) {

        let appDel:AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
        let context:NSManagedObjectContext = appDel.managedObjectContext

        let index = sender.tag

        context.deleteObject(people[index] as NSManagedObject)
        people.removeAtIndex(index)

        let _ : NSError! = nil
        do {
            try context.save()
            self.tableView.reloadData()
        } catch {
            print("error : \(error)")
        }
}

希望这会帮助你.

网友评论