모바일앱199 중첩함수 보충 // 중첩함수 보충 // 함수 안에 함수를 선언 func outer() { print("outer") func inner() { print("inner") } } // 함수 안에 함수를 선언 func outer() { print("outer") func inner() { print("inner") } inner() } //outer 함수가 inner함수를 리턴, 외부에서 사용 func outer() -> () -> () { print("outer") func inner() { print("inner") } return inner } let inner = outer() inner() 2021. 12. 16. 옵셔널 바인딩 보충 // if let guard let 보충 var isTodayLunch: String? = "된장찌개" if let foodName = isTodayLunch{ print(foodName) } else { print("오늘 점심은 뭐 먹지?") } func isTodayLunch() { var foodName: String? foodName = "김치찌개" guard let name = foodName else { print("오늘 점심은 뭐 먹지?") return } print(name) } isTodayLunch() 2021. 12. 16. [알고리즘] 최대공약수와 최소공배수 구하기 용어 설명 공약수: 두 개 이상의 자연수의 공통인 약수 최대공약수: 공약수 중에서 가장 큰 수 공배수: 두 개 이상의 자연수의 공통인 배수 최소공배수: 공배수 중에서 가장 작은 수 알고리즘 input 입력함수 선언 구분자설정 문자형 배열로 전환 입력값이 없는경우, 띄어쓰기 오류에 대한 처리 숫자입력이 아닌 경우, 오류처리 숫자형 배열로 전환 solution 함수에 입력 solution함수에서 반환한 문자열 출력 gcd 최대공약수 구하는 함수 선언 solution 최대공약수를 이용해 최소공배수를 구하고 문자열을 출력하는 함수선언 result빈배열 생성 gcd함수에서 구한 최대공약수를 배열의 첫번째에 추가 최소공배수를 구해 배열의 두번째에 추가 문자열 변수 answer에 최대공약수, 최소공배수를 출력하는 내.. 2021. 12. 16. SceneDelegate를 사용하지 않을 때의 세팅 Xcode13부터 AppDelegate의 기능이 AppDelegate와 SceneDelegate로 나뉘었습니다. SceneDelegate는 간단히 말해서 스플릿뷰를 지원하는 것에 대한 기능이라고 생각할 수 있습니다. 하지만 SceneDelegate를 사용하지 않는 세팅이 필요한 경우도 있습니다 세팅: 1. Info에서 Scene관련 내용 지우기 2. SceneDelegate 파일 지우기 3. AppDelegate안에 클래스 내부에 window 선언하기 var window: UIWindow? 4. AppDelegate에서 SceneDelegate 관련 코드 지우기 func application(_ application: UIApplication, configurationForConnecting connec.. 2021. 12. 15. iOS에서 HTTP 접근 허용하기 Xcode는 iOS 9부터 HTTP 접근을 허용하지 않습니다. 따라서 리소스가 https 가 아니라면 불러오지 못합니다 Info에서 key 를 추가해줍니다. App Transport Security Settings - Allow Arbitrary Load Yes로 변환 이미지를 불러오는 스킴주소 등에서 문제가 될 수 있습니다. 2021. 12. 15. Delegation Programming Design Pattern Delegation : 위임 Delegate : 위임하다 어떤 객체가 자신이 할일을 다른 객체에게 위임하는 형태 언제 써야 하나? Use to break up large classes or create generic, reusable components. UIKit 에서 가장 흔하게 쓰입니다. (e.g. ~DataSource , ~Delegate 가 들어간 이름들) DataSource: 데이터를 제공 (e.g. UITableViewDataSource : UITableViewCell 를 제공 to display) Delegate: 데이터나 이벤트를 받음 (e.g. UITableViewDelegate : row가 선택될 때마다 알림제공) 주의사항 매우 유용하지만 과하게 사용할 수 있다. 하나의 객체에 대해 .. 2021. 12. 15. UISlider Control event 이전에 사용했던 UIButton과 달리 value changed event일 때, action을 호출한다. 다양한 이벤트가 존재함. 내가 사용하는 것마다 event가 다르기때문에 공식문서 참고 https://developer.apple.com/documentation/uikit/uicontrol/event Apple Developer Documentation developer.apple.com 2021. 12. 15. Gesture Recognizer 제스쳐인식기는 스토리보드에서 오브젝트 추가를 통해 생성할 수 있습니다 원하는 제스쳐를 찾아서 뷰컨트롤러에 드래그 적용시 뷰컨트롤러의 상단에 표시가 됩니다. 실제로 작동하기 위해서는 1. 링크시킨다 2. 액션에 대한 코드도 작성이 돼야합니다. @IBAction func tapBackground(_ sender: UITapGestureRecognizer) { print("tap background view") // self.view.endEditing(true) // self.inputField.resignFirstResponder() // self.inputField.endEditing(true) } 주석처리한 3가지 코드는 텍스트필드에 입력하고 마쳤을때, 화면을 터치시 키보드가 사라지도록 설정하기 위한 .. 2021. 12. 15. 2주차 프로젝트03_업다운게임 1. 목표 : Outlet과 Action을 구현해 버튼만들기, 화면터치시 제스쳐 인식하기 IBOutlet IBAction Gesture Recognizer 링크된 것들 이름 바꾸기 Mark: 입력하기 2. 구현화면 - 왼쪽label: start!, up! down! 정답입니다! 메세지 출력 - 오른쪽label: 제출한 숫자 카운트 - textfield: 숫자를 입력하는 곳 - 제출button: 입력값 없음, 입력값이 잘못되었음 등의 출력을 나타낼수 있도록 함수 설정 3. gesture recognizer 4. 링크된 요소들의 이름을 바꿀경우 Editor - refactor - rename에서 수정가능 5. Mark: 주석 입력하기 // Mark: [입력] // Mark:- 입력시 구분선 생성 2021. 12. 15. UITextfield에 입력후 키보드 숨기기 우리가 핸드폰을 사용할 때, 당연하게 생각해왔던 것 중 하나는 "텍스트를 입력하고 나면 키보드가 자연스럽게 사라지는 것이다." 그 당연한 것들이 개발자의 세계에서는 당연하지 않고 하나하나 지정해줘야하는 것이다. 이걸 처리 하지않으면 입력이 끝나도 키보드는 영원히 화면에 남는다. Textfield가 이미 만들어져있는 상황,, override func touchesBegan(_ touches: Set, with event: UIEvent?){ self.view.endEditing(true) } 이 코드만 viewController의 아무곳에나 추가하면 된다. + 또다른 방법 // UITapgestureRecognizer를 선언해 둔 상태에서 함수안에 아래 코드를 삽입하고 셋중에 아무거나 사용해도된다. @IB.. 2021. 12. 14. 이전 1 ··· 9 10 11 12 13 14 15 ··· 20 다음