对于如何删除swift中的所有核心数据,我有点困惑.我创建了一个链接了IBAction的按钮.点击按钮,我得到以下信息:

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

然后我用各种方法try 删除所有的核心数据内容,但我似乎无法让它正常工作.我使用removeAll从存储数组中删除,但仍然无法从核心数据中删除.我假设我需要某种类型的for循环,但不确定如何根据请求进行.

我try 过应用删除一行的基本原则

func tableView(tableView: UITableView!, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath!) {

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

    if editingStyle == UITableViewCellEditingStyle.Delete {

        if let tv = tblTasks {
            context.deleteObject(myList[indexPath!.row] as NSManagedObject)
            myList.removeAtIndex(indexPath!.row)
            tv.deleteRowsAtIndexPaths([indexPath!], withRowAnimation: UITableViewRowAnimation.Fade)
        }

        var error: NSError? = nil
        if !context.save(&error) {
            abort()
        }

    }

}

然而,问题是,当我点击一个按钮时,我没有indexPath值,而且我需要循环遍历所有的值,这似乎与上下文无关.

推荐答案

我使用以下方法使其工作:

@IBAction func btnDelTask_Click(sender: UIButton){

    let appDel: foodforteethAppDelegate = UIApplication.sharedApplication().delegate as foodforteethAppDelegate
    let context: NSManagedObjectContext = appDel.managedObjectContext  
    let request = NSFetchRequest(entityName: "Food")

    myList = context.executeFetchRequest(request, error: nil)


    if let tv = tblTasks {

        var bas: NSManagedObject!

        for bas: AnyObject in myList
        {
           context.deleteObject(bas as NSManagedObject)
        }

        myList.removeAll(keepCapacity: false)

        tv.reloadData()
        context.save(nil)
    }
}

然而,我不确定这是否是最好的方法.我还收到了一个"常量"bas,推断出有"anyobject"错误——所以如果有任何解决方案,那就太好了

EDIT

通过更改为bas:AnyObject进行修复

Swift相关问答推荐

具有@Published属性的双向数据流动,能够忽略事件

如何将CodingKeys作为数组而不是枚举传递到类外部的函数中?

从Firebase播放音频文件不起作用

按数组大小进行类型判断?

macOS SwiftUI: 如何触发删除一个项目?

如何从 RC 加载场景作为 ModelEntity 而不是普通实体?

如何让默认函数参数引用另一个函数参数?

在PrimitiveSequence上引用实例方法xxx需要类型A和any B等效

并发执行代码中捕获的 var 的变异

SwiftUI View Builder 参数无法更改状态

Swift Components.Url 返回错误的 URL

如何使 SwiftUI Picker 换行文本

在 Select 器上显示alert Select SwiftUI

swift中的SequenceType和CollectionType有什么区别?

使用 swift 运行 pod install 时出错

在 Swift for iOS 中沿圆形路径绘制文本

自动布局:获取 UIImageView 高度以正确计算单元格高度

在 unwind segue 之后执行 push segue

在 Swift 中子类化 NSObject - 初始化器的最佳实践

使用 JSONEncoder 对类型为 Codable 的变量进行编码