목록전체 글 (79)
나만의 공부 노트
일단 PhotoKit은 Photos와 PhotosUI로 나뉘어지는 듯하다 Photos는 주로 사진, 비디오를 가져오기, 수정 저장 등을 하는 작업에 쓰이는 것 같고 PhotosUI는 필터와 같은 사용자 수준의 편집을 지원하는 것 같다. (쓰면서 공부하는거라 추측성 발언...ㅜㅜ 아래에서 확실히 배울거임) + core data와 유사한 부분이 많이 보인다. 아마 core data을 응용해서 사용하고 있는게 아닐까? 예를 들어 model은 phasset, phassetcollection 등으로 정의되어있구 context는 PHImageManger 칭구들이구(phassetrequest가 transaction인듯) -> 흠.. PHImageManger은 단순히 가져오기, 생성 담당이고 -> 따로 PHChange..
#Core Data (thread) thread safe에 관하여 기본적으로 context는 자신한테 생성된 queue에서만 사용될 수 있음 다른 queue로 보내서 작업하면 작동하지 않음 ?? https://zeddios.tistory.com/987 여기 중간 부분 아래 부터 그림 보면 좋을듯 자.. 정리해보자 우선 NSPersistentContainer가 아래의 모든 객체를 가지고 있고 또 관리한다(아래처럼 구성하였기에 core data를 원활히 이용가능한듯) 1. NSManagedObjectModel (Model)
#Core Data (querying) 데이터를 꺼내와보자! NSFetchRequest
#Core Data (데이터 베이스 공부해야할 듯..!) 코어 데이터 != 데이터 베이스 가 아님 (framework이고 물론 persistent를 지원하지만 다른 기능도 많음! 그중에 일부 일 뿐) 모든 entity는 NSManagedObject라는 클래스를 상속받고 있음 데이터베이스 자체는 NSManagedObjectContext이고 얘를 통해서 데이터베이스안의 데이터에 접근 시작 -> Context는 transaction일 뿐! -> persistentcontainer가 데이터베이스, transaction, model을 다 들고 있음 ㅎ 1. let container = (UIApplication.shared.delegate as! AppDelegate).persistentContainer UIAp..
큐에는 두가지 종류가 있따 1. Serial ( = 직렬, 순서대로 )
view의 커스텀 클래스를 만들어보면 얘네가 들어있따.. override func draw(_ rect: CGRect) { 여기서 인자는 최적화를 위한 인자라고 함(원하는 rect부분만 그리는듯) ios 시스템이 호출하므로 되도록 이 함수는 바꾸지말것 * 실험해본 결과 기존의 모양은 유지한 채 커스텀 드로잉이 실행됨 }
테이블 뷰에서 셀의 높이를 결정하는 법 1. 스토리보드에서에서 정적으로 할당 가능 (아래의 delegate, auto를 안쓴다는 가정하에..) 1-1. Dynamic table인 경우 각각의 table view cell는 무시되고 table view에서 지정한 셀 높이가 됨 2-1. Static table인 경우 table view에서 지정한 셀 높이보다 각각의 table view cell의 높이로 잘 지정됨 2. delegate delegate를 쓴다는 것은 결국 동적 테이블이다 -> 스토리보드에서 지정한 table view가 가진 cell의 높이로 결정! 그러나 테이블 뷰가 계속 datasource, delegate로 물어보니 아래의 함수가 호출되어 결국 아래 함수가 최종 winner! overrid..
leewon.tistory.com/173
대표적으로 키보드가 나타나는 걸 알려주는 기능이 있음 (키보드는 따로 UI가 없다네,, 불렀던 view로 키보드 설정을 바꿀수 있음 여기선 UITextInputTraits protocol로 값들을 바꿀 수 있음) 나중에 Notification을 구현하고 추가할 수 있는 듯? 일단 패쓰 jinshine.github.io/2018/07/05/iOS/NotificationCenter/ deinit() : 1번씩만 호출되니까 아래는 예제 키보드가 나타나면 UI 위치들을 변경해야할 때가 있음 (text field가 가려지는 등..) 그래서 NSNotificationCenter을 이용하자! UIKeyboard{will,Did,Show,Hide}Notifications
IBAction이 아닌 코드로는 다음과 같이 func addTarget(_ target: Any?, action: Selector, for controlEvents: UIControl.Event) ex) button.addTarget(self, action: #selector(ViewController.func), for controlEvents: .touchUpInside) target에는 일을 맡아줄 객체를 선정하고(여기선 viewController) -> action에는 그 객체가 할 수 있는 함수를 호출해주고(인자가 0개일 땐 괄호 생략) -> 어떤 이벤트가 들어왔는지 기입 selector에서 인자가 0개 이거나 함수명이 단일인 경우는 생략할 수 있는데 아닌 경우는 (_: for:)처럼 표시해줘야..