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
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:
-
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ı?
: 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. –