1.CoreData 프레임워크 import

2. ManagedObjectContext 얻기
Swift2.x
-------------------------------------------------------------------------------
let appDelegate = UIApplication.shared.delegate as! AppDelegate
let managedContext = appDelegate.managedObjectContext
==================================================================
Swift3
-------------------------------------------------------------------------------
let appDelegate = UIApplication.shared.delegate as! AppDelegate
let managedContext = appDelegate.persistentContainer.viewContext
==================================================================
ManagedObjectContext 값을 getContext () 함수에 리턴 하도록 하자
-------------------------------------------------------------------------------
func getContext () -> NSManagedObjectContext {
let appDelegate = UIApplication.shared.delegate as! AppDelegate
return appDelegate.persistentContainer.viewContext
}
==================================================================
3. ManagedObject 에 데이터 저장 (Save the Data)
-------------------------------------------------------------------------------
func SaveData (nameC: String, ageC: Int) {
//ManagedObjectContext 불러오기
let context = getContext()
//entity 설정
let entity = NSEntityDescription.entity(forEntityName: "Item", in: context)
let Itmes = NSManagedObject(entity: entity!, insertInto: context)
//entity 값 설정 key 값 == entity 속성값 이름
Itmes.setValue(nameC, forKey: "name")
Itmes.setValue(ageC, forKey: "age")
// 객체 저장 하기
do {
try context.save()
print("saved!")
} catch let error as NSError {
print("Could not save \(error), \(error.userInfo)")
} catch {
}
}
==================================================================
4. ManagedObject 에 데이터 가져오기 (Retrieve the Data)
-------------------------------------------------------------------------------
func getData () {
//entity값에 대한 fetch request 생성
let fetchRequest: NSFetchRequest<Item> = Item.fetchRequest()
do {
// 결과값 담기
let searchResults = try getContext().fetch(fetchRequest)
// for 문을 이용하여 Key 값에 대한 Value 값 가져오기
for Items in searchResults as [NSManagedObject] {
print("\(Items.value(forKey: "name"))")
print("\(Items.value(forKey: "age"))")
}
} catch {
print("Error with request: \(error)")
}
}
==================================================================