일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- SWIFT
- 클린아키텍쳐
- swiftdocs
- RIBs Tutorial
- coordinateSpace
- conflicting access to memory
- UICoordinateSpace
- Ribs
- 대머리깃허브
- App Signing
- 메모리 접근 충돌
- windowScene
- iOS 버전 점유율
- Concurrent
- in-out
- 로버트마틴형
- Dispatch.main.sync
- Dependency Rule
- rib
- Github file size
- RxSwift
- memory safety
- 잡초가득블로그
- Large File Storage
- RxCocoa
- Automatically manage signing
- Git Large File Storage
- ios
- Apple Certificate
- iOS Target
- Today
- Total
목록SWIFT (8)
빙수왕의 개발일지
https://github.com/uber/RIBs/wiki/iOS-Tutorial-2 GitHub - uber/RIBs: Uber's cross-platform mobile architecture framework. Uber's cross-platform mobile architecture framework. - GitHub - uber/RIBs: Uber's cross-platform mobile architecture framework. github.com Tutorial2 wiki 설명 목표 로그인 후 게임 필드 보여주기를 할 것임. 자식 RIB가 부모 RIB와 소통하게 하기 부모 interactor가 원할 때 자식 RIB를 Attach/detach 하기 view-less RIB 만들기 view-..
iOS에는 안드로이드와 달리 체크박스가 없어서 UIButton을 이용해서 만들어야 한다. 기본 UIButton의 selected 상태를 사용하여 이미지를 변경해 줄 수도 있지만, 확장성을 생각해서 Custom Class를 만들어 보았다. /// 체크박스 class CheckBox: UIButton { /// 체크박스 이미지 var checkBoxResouces = OnOffResources( onImage: UIImage(named: DefaultResource.checkedImage), offImage: UIImage(named: DefaultResource.notCheckedImage) ) { didSet { self.setChecked(isChecked) } } enum DefaultResource..
swift는 struct와 enum같은 강력한 value type을 제공한다. 보통은 value type을 사용한다. reference type의 unintended sharing(의도하지 않은 공유)를 피하기 위해서. class를 사용한다면, 이것의 메모리는 ARC에 의해 관리된다. 이제 객체의 lifetime이 어떻게 관리되는지 보자. Object lifetimes and ARC Object의 생명주기는 initialization으로 시작되고, 마지막 사용으로 끝난다. ARC는 object의 생명주기가 끝나고 dealloc(해제) 한다. ARC는 객체의 reference count를 계속 track해서 객체의 lifecycle을 결정한다. ARC는 Swift compiler에 의해 retain과 re..
아래 코드를 그냥 쓰면 앱이 죽는다. 그냥이라는게 맨바닥에 쓴다고 해야하나..? 아무튼 개발자가 추가한 임의의 다른 시점이 아닌, 순서대로 실행되는 앱의 기본 시점에서 쓰면 죽는다. 왜 죽는걸까? 일단 DispatchQueue class에는 대표적인 2가지 인스턴스 메소드가 있다. sync와 async이다. sync는 메소드를 부른 객체의 시점을 멈추게 해서, 이 객체(DispatchQueue)가 sync안의 블럭을 모두 수행할 때 까지 다른것은 아무것도 할 수 없는 상태가 된다. 이걸 큐를 block 한다고들 한다. async는 블럭 안의 작업을 하긴 하는데 이 작업이 수행되는동안 다른것이 수행되는걸 막지 않는다. 큐가 다른행동도 할 수 있다. Serial큐에서 이렇게 해줘도 어차피 한번에 1개의 작업..
Memory Safety 기본적으로, Swift는 코드에서 안전하지 않은 동작이 발생하는걸 방지해준다. 예를들어, Swift는 변수를 사용하기 전에 초기화하도록 하고, 할당 해제(dellocated)후 메모리에 접근하지 않도록 하며, Array indices에서 out-of-bounds error가 있는지 확인한다. → 변수 초기화를 안하면 컴파일 오류를 낸다던가, 해제된 메모리에 접근하거나 array out of index 에러 발생 시 런타임에 오류가 떨어지는 것을 말하는듯 하다. Swift는 또한 동일한 메모리에 대한 다중 접근이 충돌(conflict)하지 않도록 한다. 어떻게? 메모리의 location을 수정하는 코드가 그 메모리에 단독으로 접근할 수 있도록 하는 방법으로. → 메모리의 위치를 수..
Swift Docs를 기반으로 이해한 내용을 작성하였습니다. In-Out Parameters 함수 파라미터는 default가 상수이다. 상수이므로, 함수 parameter의 값을 함수의 body 안에서 바꾸려고 하면 compile-time 에러가 발생. parameter의 값을 변경하고 싶다면, 그리고 이 변경이 함수 호출이 끝나고도 지속되길 원한다면, 파라미터를 in-out parameter로 만들어라. in-out 키워드는 parameter 앞에 배치하여 사용한다. in-out 매개변수에는 함수에 전달되고, 함수에 의해 수정되고, 원래 값을 대체하기 위해 함수 외부로 다시 전달되는 값이 있다. 상수나 문자(literal value)는 argument(전달인자)로 사용될 수 없다. (수정할 수 없는 값..
4가지 방법이 있다. 출처 https://github.com/RxSwiftCommunity/RxDataSources RxSwiftCommunity/RxDataSources UITableView and UICollectionView Data Sources for RxSwift (sections, animated updates, editing ...) - RxSwiftCommunity/RxDataSources github.com 각각 언제 사용하는가? 1) rx.items(dataSource:protocol) - 아직 안써봄. dataSource를 넣어주는걸 봐선 아주 세밀한 커스텀(?)이 필요할 때 쓰일 것 같다. 2) rx.items(cellIdentifier:String) - cell 커스텀 클래스를 ..
문제상황: ViewController에서 IBOutlet을 끌어다 놓고 viewDidLoad에서 호출만 하면 뷰가 nil이다. Unexpectedly found nil while implicitly unwrapping an Optional value 원인: 1. 일단 바보처럼 xib의 이름이 ViewController의 이름과 달랐다. ex) xib파일명: ABC.xib / swift파일명: ABCViewController.swift 2. 바꿨더니 다른 오류가 났다. 위치가 달랐음. AppDelegate에서 났는데 loaded the \"aaaViewController\" nib but the view outlet was not set. 아.. 알고보니 outlet과 view를 연결을 안해줘서 그런거였다..