代码之家  ›  专栏  ›  技术社区  ›  Shane O'Seasnain

Delete核心数据项无法使用参数列表“([AnyObject]?)”调用“deleteObject”

  •  0
  • Shane O'Seasnain  · 技术社区  · 9 年前

    当我试图从项目中删除核心数据项时,我遇到了错误

    cannot invoke 'deleteObject' with an argument list of '([AnyObject]?)'
    

    我认为这基本上要求我投射物体,但当我尝试这个时,我得到了同样的错误。我的代码如下:

    let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
    let context = appDelegate.managedObjectContext
    var error:NSError? = nil
    let request = NSFetchRequest(entityName: projectEntityName)
    let pred = NSPredicate(format: "projectName = %@", projectName)
                    request.predicate = pred
    let objects = context?.executeFetchRequest(request, error: &error)
    if let objectList = objects {
       for thisProject in objectList {
          thisProject.deleteObject(objects)
       }
    }
    appDelegate.saveContext()
    

    有人能帮忙吗?

    2 回复  |  直到 9 年前
        1
  •  0
  •   pbasdf    9 年前

    你把变量搞混了。 deleteObject 是NSManagedObjectContext的一个方法,将要删除的对象作为参数传递:

    if let objectList = objects {
       for thisProject in objectList {
          context!.deleteObject(thisProject)
       }
    }
    
        2
  •  0
  •   richbrz    9 年前

    使用 as .

    thisProject.deleteObject(objects as! [type])