2015-07-05 2 views
-1

хранить новую запись в основных данных, как это:Удаление конкретной записи из CoreData

let context = self.fetchedResultsController.managedObjectContext 
    let entity = self.fetchedResultsController.fetchRequest.entity! 
    let newManagedObject = NSEntityDescription.insertNewObjectForEntityForName(entity.name!, inManagedObjectContext: context) as! NSManagedObject 
    newManagedObject.setValue("Test1", forKey: "name") 

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

Мой вопрос, как я могу удалить запись (например Test1) без indexPath в качестве UITableViewCell?

UPDATE:

fetchRequest:

let context = self.fetchedResultsController.managedObjectContext 
    let fetchRequest = NSFetchRequest(entityName:"Person") 
    fetchRequest.predicate = NSPredicate(format: "name = %@", name) 
    var error : NSError? 
    let results = managedObjectContext!.executeFetchRequest(fetchRequest, error:&error) 

ответ

3

В вашем случае, вы бы удалить объект, выполнив:

context.deleteObject(newManagedObject) 

Если вам нужно удалить объект из какого-то места в ваш код, в котором у вас нет ссылки на сам управляемый объект, вы можете получить его, например, на основе по его атрибуту name, а затем удалите его.

Это, как вы можете получить все МО, имя которых соответствует name:

let fetchRequest = NSFetchRequest(entity: entityName) 
fetchRequest.predicate = NSPredicate(format: "name == %@", name) 
let results = context.executeFetchRequest(fetchRequest, error: &error) 
+0

Большое спасибо за Ваш ответ! Мне нужно удалить объект из какого-либо места в моем коде (нет ссылки). Можете ли вы привести пример, как получить его на основе его атрибута имени? – Vpor

+0

См. Мой отредактированный ответ ... – sergio

+0

Я обновил свой вопрос, как он работает. У меня есть тесты «Test1», «Test2» и «Test3». Как я могу удалить «Test2»? Правильно ли это: 'fetchRequest.predicate = NSPredicate (format:" name == Test2 ", name)'? Я использую Swift около 1 месяца. Извините за глупый вопрос. – Vpor