2016-04-12 15 views
-1
  1. Bir UILabel tarafından sağlanan özel bir dize, CoreData gelen tek bir dize silmek istiyorum. Bu yüzden tablodaki bir satırı silmek için çalışmaz.Getir ve dize silme dize Çekirdek Verileri

  2. Ayrıca, belirli bir dizenin CoreData değerinde olup olmadığını kontrol etmek istiyorum. Örneğin

:

ben "mikro" adlı takıldı iple "hizmetler" adlı bir özelliği olan bir varlık adında "Favoriler" var. "Mikro" yi silmek istiyorum. Ayrıca, "micro" nun (örneğin) "services" özniteliğinden ve "Favorites" (Sık Kullanılanlar) özniteliğinden dize olup olmadığını kontrol etmek istiyorum.

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!) 

... ama bu çalıştı

2. "serString" dizesini silme değil:

Bunu denedim

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 
    } 

... "çözümlenmemiş" kullanımı "& hatası" hatası veriyor tanımlayıcı 'hata' "

2 (b).

de bu çalıştı ama çıkış

"hatasının Baskı açıklaması: (NSError) hatası = "verir app çöküyor kapsamında"

(lldb)" üzerinden

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)") 
    } 

GÜNCELLEME:

  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. üzerindeki herhangi yardıma:Bu kod nihayet dize silmeye çalıştı?

+0

: Ben gibi bir şey gerektiğini düşünüyorum. "Mikro" yi silmek istiyorum. Ayrıca, "micro" nun (örneğin) "services" özniteliğinden ve "Favorites" (Sık Kullanılanlar) özniteliğinden dize olup olmadığını kontrol etmek istiyorum. –

cevap

0

1. Ben "mikro" adlı takıldı iple "hizmetler" adlı bir özelliği olan bir varlık adında "Favoriler" var

 contexto.deleteObject(p!) 

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

     }