2016-04-12 27 views
-1
  1. 我想從CoreData中的自定義單元中的UILabel中提供一個字符串。所以從tableview中刪除一行不起作用。從CoreData獲取比較和刪除字符串

  2. 此外,我想檢查一個特定的字符串是否在CoreData值。

例如:

我有一個實體名爲「收藏」與名爲「服務」與那我插入一個名爲「微」字符串的屬性。我想刪除「微」。另外,我想檢查「micro」(例如)是否來自屬性「services」和實體「Favorites」中的字符串。

我已經試過這樣:

1.

let serString = servico.text 

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

     let entidade = NSEntityDescription.entityForName("Favorites", inManagedObjectContext: contexto) 
     let pedido = NSFetchRequest(entityName: "Favorites") 
     pedido.predicate = NSPredicate(format: "service = %@", serString!) 
     let p:Favorites? = Favorites(entity: entidade!, insertIntoManagedObjectContext: contexto) 
      contexto.deleteObject(p!) 

...但它不會刪除字符串 「serString」

2. 嘗試這樣:

var request : NSFetchRequest = NSFetchRequest(entityName: "Favorites"); 
    request.predicate = NSPredicate(format: "services = %s", "micro") 
    let results : [NSManagedObject] = context.executeFetchRequest(request, error: &error) 
    if (results.count > 0) { 
     print("exists")  } 
    else { 
     //Doesn't exist 
    } 

...但在「&錯誤」中給出錯誤,說「使用未解析標識符'錯誤'「

2(b)。

也這個嘗試,但崩潰輸出給出

「打印錯誤的描述: (NSError)錯誤= 」應用程序超出範圍「

(LLDB)」

let request : NSFetchRequest = NSFetchRequest(entityName:  "Favorites"); 
    request.predicate = NSPredicate(format: "services = %s", "micro") 
do { 
let results : [NSManagedObject] = try context.executeFetchRequest(request) as! [Favorites] 
if (results.count > 0) { 
      print("exists")  } 
     else { 
      //Doesn't exist 
     } 
     // success ... 
    } catch let error as NSError { 
     // failure 
     print("Fetch failed: \(error.localizedDescription)") 
    } 

更新:

  1. 這個代碼終於摸索刪除字符串:

    let favoriteFetchRequest = NSFetchRequest(entityName:"Favorites") 
        let predicate = NSPredicate(format: "services = %@", serv) 
        favoriteFetchRequest.predicate = predicate 
    do { 
        let fetchedEntities = try  context.executeFetchRequest(favoriteFetchRequest) as! [NSManagedObject] 
    
    for entity in fetchedEntities { 
    context.deleteObject(entity) 
    try context.save() 
    } 
    } catch let error as NSError { 
    print("Fetch failed: \(error.localizedDescription)") 
    } 
    

。2.任何幫助嗎?

+0

我有一個實體名爲「收藏夾」與名爲「服務」的屬性與我插入名爲「微」的字符串。我想刪除「微」。另外,我想檢查「micro」(例如)是否來自屬性「services」和實體「Favorites」中的字符串。 –

回答

0

1。我認爲你需要這樣的東西:

 contexto.deleteObject(p!) 

     do { 
      try contexto.save() 
      print("Borrado ") 
     } catch _ as NSError { 
      print("Error en delete") 

     }