목록Swift/About Swift (8)
광어네 맛집
앞에서 쓴 글과 이어서 작성하고자 합니다 이번 글은 조금이나마 깊게 들어가고자 합니다! UIView 내부에 업데이트 메서드는 SetNeedsDisplay, SetNeedLayout, displayIfNeeded, layoutIfNeed 있습니다 살펴보기 전에 UIKit이 어떻게 나온지에 대해서 살펴봐야 할 것 같습니다! 제일 상단에 보이는 UIKit 은 아래 low Level 인 그래픽 API 들을 거쳐 High Level로 만들어진 그래픽 API 입니다! 타 블로그 분들께서는 Metal로 나온 부분은 OpenGL이라고 칭하셨습니다! 무튼 앱이 부드럽게 그려지기위해서는 60FPS 를 유지해야 합니다 이를 위해 Graphics Hardware를 사용하는데 Low Level로 많은 코드, 가장 빠른 Open..
이번 글은 과제를 하면서 실수, 의문점이 드는 것들을 정리 및 회고하고자 합니다! 아마 범위가 넓어서 두번 정도 나눠서 적을 예정! 우리는 Xcode에서 Cocoa Touch Class를 통해서 ViewController를 생성할 때면 viewDidLoad()라는 메서드가 override가 자동으로 만들어지게 됩니다 UIView를 생성할 때는 어떤 문구가 주석처리되어 만들어지는데 /* // Only override draw() if you perform custom drawing. // An empty implementation adversely affects performance during animation. override func draw(_ rect: CGRect) { // Drawing cod..
모두들 맛점하셨나요 ㅎㅎㅎ 드디어 CoreData의 끝이 보입니다! (사실 Data 수정도 하고 할건 많음 ㅋ) 이건 쉬우니 바로 봅시다! 안에 Entities 나 attributes를 바꾸면 무섭게 에러다!! 이렇게 발생할거에요 그러면 당황하지 말고 디버깅 영역 체크해보면 마이그레이션 안해줬어 ㅡ3ㅡ 이런 메시지를 보게 됩니다! 그럼 저희는 마이그레이션을 해줘야겠죠? ㅎㅎㅎ 먼저 Version 을 하나 추가 해줍니다! 그럼 위 사진처럼 Version 이름이랑 Base model이 나옵니다! 보통 Version에 숫자만 붙이니 이대로 냅두고 Finish를 눌러줍니다! 그럼 상단 탭에는 생겼는데 오른쪽 네비게이터에는 없네요? 띠용 아니에요 ㅋㅋㅋ 옆에 열어서 보면 있습니다! 녹색 체크 버튼을 옮겨줍니다 (..
요즘 날씨가 왔다리 갔다리... 왜이렇게 더운지 무튼 ! 이번 포스팅은 예전 포스팅과 연결하여 SQLite 보는 툴 및 Relationships에 대해서 적어보자 합니다! 이전 포스팅 마지막에서 SQlite로 데이터를 저장하고 위치까지 알아봤죠? 그럼 SQLite는 어떻게 열어보냐? 바로 SQLiteBrowser를 이용해서 열어보시면 됩니다! 다운로드 사이트는 https://sqlitebrowser.org/dl/ Downloads - DB Browser for SQLite (Please consider sponsoring us on Patreon 😄) Windows Our latest release (3.12.2) for Windows: Windows PortableApp Note - If for any..
CoreData를 파다 보니까 포스팅하고 싶은게 자꾸 늘어나네요 ㅎㅎㅎ 간단한 거니까 가볍게 읽고 가봐요 (제가 잘못 생각한 부분은 언제든 피드백 환영입니다!) 우선 CoreData는 CoreDataStack으로 되어 있는 Framework라고 합니다! Stack은 아래 그림처럼 구성되어 있습니다 Container 안에 Context, Coordinator, Model 이 들어가 있는 걸 볼 수 있습니다 앞 포스팅에서 CRUD만 구현하기 위해서 무작정 적었다면 이제는 이해하면서 사용할 수 있습니다! 1. Persistent Container Stack에 필요한 객체들을 모아둔 곳입니다! 여러가지들을 차례대로 알아봐요 2. Managed Object Model 모델은 저장하고 싶은 Data를 저장하는 객체..
SwiftUI도 어느정도 본 것 같고 심화로 들어가다 보니 SwiftUI 한계에 부딪히게 되는 것 같다 그래서 사용하게 된 CoreData! 물론 Realm 쓰면 간단하게 사용할 수 있는데 라이브러리를 많이 쓰면 안좋으니까! 처음에 Xcode를 만들 때 CoreData 체크 후 만들면 AppDelegate에 아래 처럼 자동으로 생기게 된다! // MARK: - Core Data stack lazy var persistentContainer: NSPersistentContainer = { let container = NSPersistentContainer(name: "test") container.loadPersistentStores(completionHandler: { (storeDescription, ..
오랜만에 포스팅이네! 이번 포스팅은 계속 까먹는 거 같아서 포스팅해두려고 함 참고로 곧 Swift UI 포스팅도 해야겠다! 일단 priority를 설정하면 높이나 너비를 알맞게 해줄 수 있는 걸 알고 있을거임 그러면 중간에 vertical spacing 을 준 뒤 각 레이블 Priority를 주면 어떻게 달라지는 지 알아봅시다! Content Hugging Priority (어떻게 채울래?) Content Compresstion Resistance Priority (어떻게 줄일래?) 이거 두개만 생각하면 됨! 상단 뷰에 나온 것대로 설정을 하면 아래와 같음! ( 참고로 뒤에 Label만 건드렸음! ) Content Hugging Priority Content Compresstion Resistance P..
스토리보드와 연결하게 될 때 쓰이는 것들 @IBOutlet 과 @IBAction 1. 공통적으로 들어가는 'IB' Interface Builder 의 약자이며 스토리보드라고 생각하면 편하다 2. @IBOutlet 스토리보드를 연결할 수 있게 해주는 프로퍼티(property)! @ IBOutlet let lbl: UILabel ! 2-1. @IBAction 스토리보드에서 어떤 행위를 처리하는 메소스(method)! @IBAction func btn(_ sender: Any) { print("Jacob") } 3. Control Action type (Touch 관련) - touchDown : 컨트롤을 터치했을 때 - touchDownRepeat : 컨트롤을 연속 터치할 때 - touchDragInside ..