전체 글
-
Swift) json 다루기Swift 2021. 6. 16. 15:00
네트워크 통신 표준 포맷 swift의 Dictionary와 유사한 구조 left curly brackets( '{' )로 시작 하고 right curly brackets( '}' )로 짝을 지어 끝난다. key와 value로 구성 key는 문자열 value는 숫자, 문자열 []로 배열 표현 Encoding 기본 인스턴스를 json 형식으로 인코딩 하는 것. 구조체나 클래스의 인스턴스를 encoding해보자. struct Person { var firstName: String var lastName: String var birthDate: Date var address: String? } let p = Person(firstName: "Chul_Su", lastName: "Kim", birthDate: D..
-
Swift) API Design GuidelinesSwift 2021. 6. 10. 17:53
Swift의 공식 Design Guidelines은 코드를 작성하는데 있어서 정해진 합의이다. 언어에는 화법이라는게 있고 말하는 사람마다 다르지만, 기본적으로 문장을 구성하는 요소(문법, 단어)가 합의 되어있는 규칙들이 존재한다. 언어의 이러한 요소들은 다른 사람과의 소통에 있어서 기초적인 역할을 한다. 프로그램 언어 또한 개인의 코딩 스타일이 다르지만, Design Guidelines이라고 하는 공식적으로 정해준 준수 사항이 있다. 물론 따르지 않는다고 해서 프로그램이 작동되는데 있어서 큰 영향을 미치지 않지만, 프로그래머로써 디자인 가이드라인을 준수 한다는 것은 다른 사람과의 협업, 그리고 누군가(자신 포함)가 코드를 이해 하는데 있어서 큰 강점을 가져다 준다. 천천히 살펴보자. 이 포스트는 Swif..
-
iOS) Dynamic TextView의 Underline - TextView에 밑줄 추가하기iOS 2021. 3. 5. 10:56
textField에 under line을 생성하는 예제는 많다. dynamic textView를 생성하는 예제도 많다. 둘을 합쳐보자. 우선 textView에 under line을 추가하는 코드이다. func underLine() { let border = CALayer() border.frame = CGRect(x: 0, y: self.frame.size.height-1, width: self.frame.width, height: 1) border.borderWidth = 1 border.backgroundColor = UIColor.black.cgColor self.layer.addSublayer(border) } 간단하게 layer를 textView의 frame에 맞추어 만들어 sublayer로 추..
-
iOS) CoreData - perform 메소드iOS 2021. 1. 31. 13:32
출처: www.kairadiagne.com/2019/01/06/understanding-the-core-data-perform-methods.html Understanding the Core Data perform methods Core Data is controversial to many developers. Some love it while others think it is too difficult or that it contains too many bugs. Personally I enjoy using Core Data. Out of the box it provides a lot of functionality needed for managing the model layer www.kairadiagn..
-
iOS) Core Data (4) - Entity Hierarchy and RelationshipiOS 2021. 1. 31. 05:38
summary - Entity 계층 구현 - Batch Insert - Relationship - Data Import Core Data는 두가지 관계를 지원한다. To - One Relationship: 두 개의 entity가 1대1로 연결된 관계 To - Many Relationship: 1대 다로 연결되는 관계 부서와 직원을 생각해보면 하나의 부서와 여러 직원이 연결되므로 Department가 source라면 Employee를 destination으로 to-many 관계다. Core Data model에서 Person, Employee, Department 엔티티를 만들고 이들의 관계를 형성하자. 우선 Employee는 Person을 상속하고 Department는 Employee와 To - Many..
-
iOS) Core Data (3) - CRUDiOS 2021. 1. 27. 14:21
전에 생성 했던 Entity Class를 이용하여 데이터를 생성하고 읽고 업데이트하고 삭제 하는 기능을 구현 해보자. Core Data Model에서 Codegen를 Manual/None으로 바꿔준 후 Xcode의 NSManagedObject Class를 생성 하는 기능으로 Entity Class를 생성 해주었다. DataManager를 extension 하여 CRUD 기능을 만들어 보자. 또 Entity Class가 아닌 Xcode에서 자동으로 생성 해주었던 Entity와 어떻게 다른지 비교해 보자. CREATE extension DataManager { func createPerson(name: String, age: Int?) { mainContext.perform { let newPerson = ..
-
iOS) Core Data (2) - Managed Object와 Managed Object ContextiOS 2021. 1. 26. 20:17
summary - NSManagedObject - NSManagedObjectContext - Data Model 구성 - Entity 클래스 생성 Managed Object Core Data는 모든 데이터를 Entity 단위로 처리한다. 여기서 Entity는 모델 관점의 용어이다. context에서 처리하는 실제 데이터는 Managed Object이다. 여기서 Managed가 붙는 이유는 라이프 사이클을 core data가 관리 하기 때문이다. Managed Object는 NSManagedObject 클래스로 구현 되어있다. 우리가 모델 파일에서 볼 수 있고 생성 할 수 있는 Entity는 swift에서 NSManagedObject와 1대1로 연결된다. 이 클래스는 관리 객체에 필요한 모든 기능이 구현..
-
iOS) Core Data (1) - over viewiOS 2021. 1. 25. 19:12
코어 데이터는 데이터를 영구적으로 저장할 때 사용하는 기술이다. '영구적'의 의미는 앱을 종료 하더라도 유지되는 데이터이다. Object Graph Management Tool core data는 4가지의 객체로 구성되어 있다. - Persistent Store: NSPersistentStore 이름 그대로 영구 저장소이다. 메모리에 저장되어 앱이 종료 될 시 없어지는 데이터와 달리 앱이 종료 되거나 전원이 차단되어도 계속 유지된다. 기본적으로 4가지 영구 저장소를 제공하고 custom 저장소를 구현하는 것도 가능하다. 영구저장소는 데이터를 메모리에 로딩하는 방식에 따라서 Atomic store과 non-atomic store로 나뉜다. 아토믹은 데이터를 처리할 때 모든 데이터를 메모리에 로드해야 한다...