반응형

iOS/Swift 어플 따라하기 58

[Swift] 상태표시줄 컬러 변경 (Status bar color)

앱 내에서 배경을 어둡게 표시하게 되어야 할 경우 요딴식으로 어둡게 나와버리면 답이 없다. 설정을 두 가지 만져주자 1. Target -> Deplyment Info에서 Status Bar Style을 default -> Light Content로 변경해주고 2. Info plist에서 View controller-based status bar appearance를 No로 체크해준다. (대문자 구별 해서 View~~~를 쳐야 나옴) 짜라~~~

[Swift] Realm을 사용하여 Data Read(CRUD)

realm에서 데이터를 불러오는 메서드는 간단한데 자세히 살펴 볼 필요가 있다. class CategoryViewController: UITableViewController { let realm = try! Realm() var categories = [Category]() override func viewDidLoad() { super.viewDidLoad() loadCategories() } 위와같은 세팅에 func loadCategories() { categories = realm.objects(Category.self) } 메서드를 작성하면 에러가 뜨는데 결과값을 categories에 할당할 수 없다는 것 categories는 array 타입이고 realm.objects의 data type은 re..

[Swift] Realm을 사용하여 Data Create(CRUD) + 관계 설정

List는 Realm에서 사용하는 array와 가장 비슷한 container type ex. swift에서의 initialize는 let array : Array = [1,2,3] 혹은 let array = Array() 로 initilize할 수 있다 ex Realm에서는 이미 생성된 Item class가 있다면 let items = List() 요딴식으로 initiailize할 수 있다. 그리고 자동으로 List()은 일대다 관계를 가진다. realm에서의 관계 설정 두 클래스와의 관계에서 정방향 역방향 관계는 직접 설정해줘야 한다. fromType : Category.self property: 정방향 관계의 property name +버튼을 눌러 UIAlert로 data를 Create하는 메서드 @..

[Swift] Realm 맛보기.. data경로, data확인

1. Appdelegate에서 realm initialize import RealmSwift func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { do { let realm = try Realm() } catch { print("Error initialising new realm, \(error)") } return true } 2. Model에 Data설정 realm의 변수는 dynamic이 붙는다 dynamic은 선언 수정자로도 불린다 정적 dispatch보다 정적dispatch를 사용하도록 런타임에게 ..

[Swift] Searchbar 탐색 이후 기존 목록으로 돌아가기

func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) { if searchBar.text?.count == 0 { loadItems() DispatchQueue.main.async { searchBar.resignFirstResponder() } } } 1. x표시를 누르면 글자수가 0이 됨을 트리거하여서 기존에 있던 목록으로 되돌아 갈 수 있다. 그리고 막상 뒤로 돌아가게 되면 키보드가 사라지지 않는데 키보드가 firstresponder였는데 그것을 main queue로 가져와서 해지를 시켜줘야 키보드가 다시 내려가게 된다. DispatchQueue.main.async { searchBar.resignFirstRespond..

[Swift] Query using Coredata (Searchbar)

1. UISearchBar delegate 설정 2. searchbar.delegate = self (서치바를 ctrl + 해당하는 viewcontroller에 끌어다 놓기) 3. delegate메서드 추가하기 4. context에 요청 (NSFetchRequest 사용) let request: NSFetchRequest = Item.fetchRequest() 5. 쿼리에 태그 달기 (NSPredicate 사용) let predicate = NSPredicate(format: "title CONTAINS[cd] %@", searchBar.text!) request.predicate = predicate predicate는 서술부 혹은 근거를 두다, 단정하다 정도로 해석되는데 NSPredicate는 아마 ..

[Swift] Coredata로 CRUD

지난 피드에서는 Coredata로 C를 했다면 이번 피드에서는 나머지 RUD(Read, Update, Delete)를 수행해보자 Read 1. 상수를 만들고 NSFetchRequset를 이용하여 데이터를 지정 NSFetchRequest (a) NSFetchRequest는 데이터 타입을 미리 정해줘야 한다. let request : NSFetchRequest (b) Entity에서 전체 항목을 가져온다 let request : NSFetchRequest = Item.fetchRequest() 2. context로 가져와서 불러오기 context.fetch(request) 3. do try catch문 사용하기 실제로 fetch는 리턴값을 array형태로 반환한다. 이 값을 개인적으로 설정해 둔 array값..

[Swift] Coredata로 data 저장하고 불러오기(CRUD의 시작)

1. DataModel로 이동해서 entity생성 entit는 Class와 거의 동일 (= 테이블과도 개념이 비슷해서 엑셀 단일 시트와 같이 단일 entity를 가진다) Attributes는 Properties와 동일 2. 이름 바꾸기 3. Attributes(속성 추가하기) 4. 모듈 바꾸기 Global namespace에서 Current Product Module로 바꾼다. (코어데이터 프로젝트가 많아지고, 멀티 스레딩이 필요하면 오류가 발생할 수도 있기 때문) **Codegen이란? 1. Mnual/None -> 모든 작업을 직접 수행해야함 2. Class Definition (Default) -> data, entity, property를 class와 property로 만들어 사용하고 조작 가능하..

반응형