2016년 10월 24일 월요일

Core Data, NSManagedObjectContext (Save the Data, Retrieve the Data) 사용 @@ in Swift3 - Xcode 8.0 iOS 10

오늘은 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)")
 }
}
==================================================================

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



추천 게시물

애플 개발자 등록방법 2016년 5월 8일 기준!!

애플 개발자 등록 절차 1. 개발자 등록 페이지 이동    애플 개발자 로그인 > Account 페이지 이동 > 하단 영역 클릭 (이미지 참조)   >> Enroll 클릭 >> 무조건 승인!! ...