📌 목차 서론 push present back 📌 서론 오늘은 swift에서의 화면전환에 대해서 알아보겠습니다. 기본적으로 push와 present가 있습니다. 📌 push push는 화면이 쌓이는 방식으로 동작을 합니다. 그래서 자연스럽게 navigation영역에 back이라는 버튼이 생기게 됩니다. 스토리 보드 일단 스토리보드에서 어떻게 하는지 알아볼까요? 먼저 button을 하나 생성해준뒤 오른쪽 클릭으로 원하는 view의 전환 부분 까지 드레그를 해줍니다. 그럼 show라는 영역을 선택을 해주면 됩니다. 그럼 아래의 화면과 같이 이런 아이콘이 생기게 됩니다. 코드 그럼 코드로는 어떻게 해야할까요? @IBAction func tabCodePushButton(_ sender: UIButton) { g..
📌 목차 content hugging compression resistance 참고 📌 content hugging content hugging 이란 주어진 크기보다 작아질 수 있음을 나타냅니다. 두개의 같은 content hugging이 있습니다. 빨간색 파란색 둘다 251의 priority를 가지고 있습니다. 이때 빨간색을 250으로 줄이게 된다면 다음과 같이 됩니다. 📌 compression resistance compression resistance는 주어진 크기 보다 커질 수 있음을 나타냅니다. 이렇게 compression resistance의 priority를 준다면 이렇게 변경이 될 수 있습니다. 📌 참고 content hugging vs compression resistance
📌 목록 고차 함수란? map filter reduce 📌 고차 함수란? 다른 함수를 전달 인자로 받거나 함수 싱행의 결과를 함수로 반환하는 함수 swift에서 제공하는 기본적인 고차함수: map, filter, reduce 📌 map let numbers: [Int] = [0, 1, 2, 3] // 풀어서 쓴 함수 //let mapArray = numbers.map { (number) -> Int in // return number * 2 //} // 간소화 let mapArray = numbers.map { $0 * 2 } mapArray // [0, 2, 4, 6] 📌 filter let intArray = [10, 4, 5, 20, 13] let filterArray = intArray.filte..
📌 목록 closure 이란? 클로저 기본 사용 Example parameter with closure 다중 인자 클로져 클로져 간소화 하기 📌 closure 이란? 코드에서 전달 및 사용할 수 있는 독립 기능 블록이며, 일급 객체의 역할을 할수 있음 일급 객체란? 전달 인자로 보낼 수 있고, 변수/상수 등르로 저장하거나 전달할 수 있으며, 함수의 반환 값이 될수도 있다! 📌 클로저 기본 사용 { (매개변수) -> 리턴 타입 in 실행 구문 } 📌 Example let hello = { () -> () in print("Hello") } hello() let hello2 = { (name: String) -> String in return "Hello, \(name)" } // hello2(name: "..
📌 목록 에러 처리란? Example 함수 안에서 처리 do try catch 값 전달 받기 📌 에러 처리란? 프로그램 내에서 에러가 발생한 상황에 대해 대응하고 이를 복구하는 과정 📌 Example 에러를 발생 시키려면 이렇게 해주면 됩니다. enum PhoneError: Error { case unknown case batteryLow(batteryLevel: Int) } throw PhoneError.batteryLow(batteryLevel: 20) // Error! 📌 함수 안에서 처리 // throws 뒤에는 리턴 타입 func checkPhoneBatteryStatus(batteryLevel: Int) throws -> String { guard batteryLevel != -1 else {..
📌 목록 옵셔널 체이닝 이란? Example 📌 옵셔널 체이닝 이란? 옵셔널에 속해 있는 nil 일지도 모르는 프로퍼티, 메서드, 서브스크립션 등을 가져오거나 호출할 때 사용할 수 있는 일련의 과정 📌 Example struct Developer { let name: String } struct Company { let name: String var developer: Developer? } var developer = Developer(name: "Sam") var company = Company(name: "Eddie", developer: developer) print(company.developer) // company.developer.name -> Error! print(company.deve..
📌 목록 열거형 이란? 기본 문법 기본값 변경 할당 문법 연관 값 명시 📌 열거형 이란? 연관성이 있는 값을 모아 놓은 것을 말한다. 📌 기본 문법 enum CompassPoint: String { case north case south case east case west // case north, south, east, west -> 이렇게 한줄로도 표기 가능합니다. } var direction = CompassPoint.east // east direction = .west // west -> 여기서 타입 추론이 이미 가능해졌기 떄문에 .으로만 접근이 가능 📌 기본 값 변경 기본값은 이렇게 변경을 해주면 됩니다. enum CompassPoint: String { case north = "북" case..
📌 목록 What is extension 기본 사용 Example 📌 What is extension 기존의 클래스, 구조체, 열거형, 포로토콜에 새로운 기능을 추가하는 기능, 다만 오버라이드는 불가능 합니다. 📌 기본 사용 extension SomeType { // 추가 기능 } 📌 Example extension Int { var isEven: Bool { return self % 2 == 0 } var isOdd: Bool { return self % 2 == 1 } } var number = 3 number.isEven // false number.isOdd // true extension String { func convertToInt() -> Int? { return Int(self) } } ..