Swift
-
codable개발/iOS 2020. 11. 23. 15:49
codable은 swift4에서 추가된 프로토콜로 JSON 처리를 손쉽게 해준다. 예로 서버로부터 이런 json 결과물을 받으면 { "coord": { "lon": -0.13, "lat": 51.51 }, "weather": [ { "id": 721, "main": "Haze", "description": "haze", "icon": "50n" } ], "base": "stations", "main": { "temp": 4.91, "feels_like": 1.93, "temp_min": 4.44, "temp_max": 6, "pressure": 1028, "humidity": 87 }, "visibility": 2800, "wind": { "speed": 2.1, "deg": 230 }, "clouds"..
-
closure개발/iOS 2020. 11. 23. 13:37
프로그래밍 함수에서는 int, float 같은 데이터 타입 인자 뿐만 아니라 함수를 전달할 수도 있는데 swift에서도 동일하게 가능하다. 함수의 인자로는 이미 있는 함수를 넣을 수 있고 뿐만 아니라 클로저(closure)의 형태로 익명의 함수(anonymous)를 만들어서 쓰는 것도 가능하다. 예로 아래에 있는 코드들은 모두 동일한 기능을 하는데 함수를 전달하는 것과 다른 클로저 형태를 사용한 것만 다르다. 자바나 코틀린을 써본 사람들은 람다 함수라는 이름으로 이미 익숙할 것이다. func calculator (n1: Int, n2: Int, operation: (Int, Int) -> Int) -> Int { return operation(n1, n2) } func multiply(no1: Int, ..
-
segue개발/iOS 2020. 11. 23. 12:24
segue(세그웨이)는 swift에선 ViewController 간의 전환하는 용도로 사용하는 라이브러리인데 ViewController가 하나의 화면을 담당하므로 화면 전환을 위한 라이브러리라고 봐도 될 것 같다. segue 가 포르투갈어로 팔로우라는 뜻을 가지고 있으니 단어의 의미와 함께 용도를 기억하면 좋을 것 같다. 세그웨이는 뷰 컨트롤러간의 연결을 통해서 만들수 있다. 스토리보드에서 작업중인 두개의 뷰컨트롤러중 화면전환이 시작되는 곳에서 도착지점까지 컨트롤을 눌러서 쭉 끌어준다. 실제 코드에 바인딩 해줄때 처럼 말이다. 옮기고 나면 위 그림의 파란색 박스로 표시한 새로운 아이템이 생긴다. 클릭하면 오른쪽 상단에서 세부 속성을 정의해 줄 수 있는데 identifier와 종류를 선택할 수 있다. id..
-
Delegate개발/iOS 2020. 11. 21. 16:02
swift 언어에서 사용하는 delegate 패턴은 용어에도 담긴 의미 처럼 특정한 작업을 다른 클래스에 위임 할 때 사용하는 디자인 패턴이다. 프로그래밍을 처음 경험하는 사람들은 어렵게 느낄 수 있으나 다른 언어를 먼저 경험해본 사람들한테는 콜백과 비슷한 사용 용도라고 될 것 같다. UI 클래스에서 주로 사용하는데 UITextField 클래스에서 사용 예시를 한번 확인해보자. 위 그림의 상단에 사용자로부터 텍스트를 받을 수 있도록 UITextField를 만들어뒀다. 시뮬레이터에서 유저가 이 영역을 클릭하면 자동으로 키보드가 올라오게 되는데 UITextField만 추가하고 아무런 추가 작업이 없었다면 엔터에 해당하는 이동 버튼을 눌러도 아무런 응답이 없다. 엔터 명령에 대해서 어떤 클래스도 이 작업을 위..