Optional 값이 있을 수도 있고, 없을 수도 있는 경우를 포함하는 임시적 타입 값을 안전하게 꺼낼 수 있게 하여 런타임 오류를 피할 수 있다. 옵셔널은 타입 어노테이션에 ? 를 붙여 표기한다. var name: String? = "jmkim" print(name) // Optional("jmkim") 옵셔널을 추출하는 4가지 방법 1) 강제 추출 : 값이 있다는 것이 확실할 때 사용 var name: String? = "jmkim" print(name!) // jmkim 2) if 문으로 nil 이 아니라는 것 확인 후 해제 var name: String? = "jmkim" if name != nil { print(name!) // jmkim } 3) 옵셔널 바인딩 if let var name: S..
Codable 자신을 외부 표현(JSON) 으로 변환(Encode) 하거나 외부 표현(JSON) 으로부터 변환(Decode) 할 수 있는 타입으로 Encodable & Decodable 로 구성된 유니온 타입 프로토콜 Encoding Person 객체를 Codable 채택 후 JSON 으로 인코딩 struct Person: Codable { let name: String let age: Int } let a = Person(name: "kim", age: 19) do { let encoder = JSONEncoder() encoder.outputFormatting = .prettyPrinted let data = try encoder.encode(a) if let jsonString = String(da..
Xib로 CustomView 만들기 View 파일과 Swift 파일을 만들어 준다. 여기서 중요한 점은 File's Owner 에 CustomView Swift 파일을 지정해주고 View에 대한 Class 는 지정해주지 않는다. 사이즈 Freeform 으로 설정 CustomView class EmptyDataView: UIView { @IBOutlet var descLabel: UILabel! @IBOutlet var imageView1: UIImageView! @IBOutlet var imageView2: UIImageView! @IBOutlet var imageView3: UIImageView! @IBOutlet var addButton: UIButton! @IBOutlet var customView..
Carthage Dependency Manager 로 외부 라이브러리를 관리해주는 툴 cocoapods 는 해당 라이브러리을 모두 빌드하지만 카르타고는 이미 컴파일된 프레임워크를 프로젝트에 등록하여 프로젝트 컴파일 할 때마다 라이브러리를 매번 컴파일 작업을 할 필요가 없어진다. 이러한 이유로, 빌드 속도가 빨라지고 기존 확장자(.xcodeproj) 에서 개발을 할 수 있게 된다. Carthage 설치 brew install carthage Carthage 사용 적용하고자 하는 폴더에서 vi Cartfile 추가하고자 하는 라이브러리 카르타고 형식에 맞게 입력 carthage update --use-xcframeworks 위 명령어 실행 라이브러리 연결 카르타고를 업데이트를 하면 아래와 같이 프레임워크가 ..
- Total
- Today
- Yesterday
- BigData
- docker
- linux
- logstash
- 도커
- nginx
- SQL
- spark
- ElasticSearch
- 로그
- ios
- 리눅스
- WEB
- MYSQL
- pytest
- 네트워크
- python
- flask
- 엘라스틱서치
- SWIFT
- network
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |