오늘은 Core Data의 ManagedObject 에 데이터 저장 및 가져오기를 하도록 하겠습니다.
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)")
}
}
==================================================================
2016년 10월 24일 월요일
Core Data, NSManagedObjectContext (Save the Data, Retrieve the Data) 생성 @@ in Swift3 - Xcode 8.0 iOS 10
1. 프로젝트 생성 및 Entity Description 만들기
* Use Core Data 체크!!
프로젝트가 생성되면<projectname> .Xcdatamodeld 파일을 선택 합니다.
하단의 Add Entity 버튼을 클릭하여 새로운 Entity 를 만듭니다
저는 "Item" 이라는 Entity를 만들었습니다.
* 주의 해야할 점은 Entity 이름의 첫 글자는 대문자로 해야 오류가 발생하지 않습니다.
Attribute 를 추가 하기 위해 " + " 나 하단의 Add Attribute 버튼을 누른다
Attribute 는 속성과 타입, 옵션등을 입력해야 한다.
Attribute 에 String 타입의 "name" 과 Integer 32 타입의 "age" 를 추가 하였다
2. NSManagedObject 하위 클래스 만들기
Entity 정의가 끝났다면 Entity에 대한 새로운 NSManagedObject를 생성해야한다.
Xcode -> Editor -> Create NSManagedObject Subclass... 메뉴를 선택 한다.
다음창이 뜨면 Entity 체크를 확인하고 Next 클릭
또 Next 클릭
완료가 되면 파일이 추가 된것을 확인할 수 있다.
NSManagedObject 하위 클래스 만들기 까지 완료 하였다
Core Data, NSManagedObjectContext (Save the Data, Retrieve the Data) 사용 - 2
에서 NSManagedObject 저장하기와 가져오기 내용을 정리하도록 하겠다.
2016년 10월 21일 금요일
UIView, UILabel cornerRadius 사용 @@ in Swift3 - Xcode 8.0 iOS 10
1. UIView
UIView.layer.cornerRadius = 10;
2. UILabel
UILabel.layer.masksToBounds = true
UILabel.layer.cornerRadius = 10;
2016년 10월 11일 화요일
thread 참고 @@ in Swift3 - Xcode 8.0 iOS 10
// Do something on background thread DispatchQueue.global(qos: .userInitiated).async { // update UI on main thread DispatchQueue.main.async { // Updating whole table view self.myTableview.reloadData() } }
2016년 10월 3일 월요일
Swift 3 변화
Swift3 의 공식 사이트 (변경 사항 정리 되어 있음)
아래 블로그는 변경사항을 잘 정리해놓았다.
Xcode 8 Beta 로 겪어보는 Swift 3 의 변화들
Xcode 8 Beta 로 겪어보는 Swift 3 의 변화들2
피드 구독하기:
글 (Atom)
추천 게시물
애플 개발자 등록방법 2016년 5월 8일 기준!!
애플 개발자 등록 절차 1. 개발자 등록 페이지 이동 애플 개발자 로그인 > Account 페이지 이동 > 하단 영역 클릭 (이미지 참조) >> Enroll 클릭 >> 무조건 승인!! ...
-
UIButton 텍스트 변경 및 텍스트 컬러 변경 - UIButton 텍스트 변경 editButton.setTitle("test", for: .normal) - UIButton 텍스트 컬러 변경 edi...
-
[애플리케이션의 상태] not running 사용자에 의해 아직 애플리케이션이 실행되고 있지 않거나 이미 실행된 후 사용자 혹은 운영체제에 의해 종료된 상태 foreground 애플리케이션이 현재 사용자에게 보여지고 있는 상태, 오직 ...
-
웹사이트 1. IBM Swift SandBox https://swift.sandbox.bluemix.net/ : 플레이그라운드와 유사한 모습으로 스위프트 코드 작성 및 실행 가능 인기있는 스위프트 소스코드를 볼 수 있고 간단한...