Swift

Swift

Swift - 화면간 데이터 전달하기

📌 목록 전환하는 화면에 data 넣기 돌아오는 화면에 data 넣기 📌 전환하는 화면에 data 넣기 코드로 push 혹은 present를 하였을때 먼저 전환될 화면에 넣어줄 data를 선언을 해줍니다. class CodePresentViewController: UIViewController { @IBOutlet weak var nameLabel: UILabel! var name:String? override func viewDidLoad() { super.viewDidLoad() if let name = name { // 화면에서 확인하기 위해 nameLabel에 text를 넣어줍니다. self.nameLabel.text = name self.nameLabel.sizeToFit() } } } 이제 전..

Swift

Swift - ViewController life cycle

📌 목차 서론 viewDidLoad viewWillAppear viewDidAppear viewWillDisappear viewDidDisappear 📌 서론 각각의 라이프 사이클이 있습니다. 상세하게 알아보겠습니다. 📌 viewDidLoad 뷰 컨트롤러의 모든 뷰들이 메모리에 로드됐을 때 호출 보통 뷰와 관련된 추가적인 초기화 작업, 네트워크 호출을 합니다. override func viewDidLoad() { super.viewDidLoad() print("viewDidLoad") } 📌 viewWillAppear 뷰가 뷰 계층에 추가되고, 화면에 보이기 직전에 매 번 호출 다른 뷰로 이동했다가 돌아오면 재호출 override func viewWillAppear(_ animated: Bool) { s..

Swift

Swift - Navigator Push Present

📌 목차 서론 push present back 📌 서론 오늘은 swift에서의 화면전환에 대해서 알아보겠습니다. 기본적으로 push와 present가 있습니다. 📌 push push는 화면이 쌓이는 방식으로 동작을 합니다. 그래서 자연스럽게 navigation영역에 back이라는 버튼이 생기게 됩니다. 스토리 보드 일단 스토리보드에서 어떻게 하는지 알아볼까요? 먼저 button을 하나 생성해준뒤 오른쪽 클릭으로 원하는 view의 전환 부분 까지 드레그를 해줍니다. 그럼 show라는 영역을 선택을 해주면 됩니다. 그럼 아래의 화면과 같이 이런 아이콘이 생기게 됩니다. 코드 그럼 코드로는 어떻게 해야할까요? @IBAction func tabCodePushButton(_ sender: UIButton) { g..

Swift

Swift - Content Hugging, compression Resistance

📌 목차 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

Swift

Swift 고차함수(map, filter, reduce)

📌 목록 고차 함수란? 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..

Swift

Swift closure

📌 목록 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: "..

Swift

Swift try-catch

📌 목록 에러 처리란? 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 {..

Swift

Swift 옵셔널 체이닝

📌 목록 옵셔널 체이닝 이란? 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..

eddie0329
'Swift' 카테고리의 글 목록