iOS 70

[IOS]스토리보드 NavigationController 화면 전환

먼저 NavigationController 요소를 추가하고 Root는 사용하면 두고 아니라면 지워줍니다. 이후 Navigation Controller를 root로 준비한(아니면 사용할) ViewController에 우클릭 드래그로 연결해주고 NavigationController 속성에서 is initial view controller 를 체크해 줍니다. (속성 메뉴에서 is initial view controller 체크된 viewController가 앱 실행시 처음 화면이 된다.) 이제 준비가 되었으니 화면을 전환하는 방법을 알아보겠습니다. sugue로 push 또는 Present 하기 1. 스토리보드에서 ViewController를 추가 2. 동작을 수행할 클래스 생성 newFile -> cocoa ..

iOS/UIKit 2022.01.30

[IOS]storyBoard에서 ViewController 연결하기

스토리보드의 화면에서 오른쪽 위에 있는 버튼 중 가운데 버튼을 누르고 Assistant를 누르면 ViewController 화면이 나타납니다. 이제 원하는 요소를 '우클릭'으로 코드에 드래그하면 다음과 같은 창이 뜨고 설정을 하면 요소를 코드로 제어할 수 있게 됩니다. Name은 변수 이름 connection은 IBOulet과 IBAction이 있는데 Oulet은 보여주는 용도 Action은 이벤트를 받아 제어하는 용도입니다. Action에서는 Event를 골라 줄 수 있습니다. 현재는 그냥 클릭입니다(아이폰에서는 터치겠죠?) 예를 들어 Label요소를 exLabel이라는 변수 이름으로 연결했다 하면 코드에 다음과 같이 입력됩니다. @IBOutlet weak var exLabel: UILabel! 이제 ..

iOS/UIKit 2022.01.30

[Swift]난수 생성과 범위 설정

Int로 랜덤을 뽑아내는 방법은 간단합니다. Int의 메소드를 사용하면 됩니다. Int.random(int: (1...10)) // 1~10 난수를 리턴 다른 방법으로 이용하는 함수는 다음과 같습니다. arc4random_uniform( ) 다음 코드과 같이 arc4random_uniform( ) 을 이용해 생성이 가능한데 원하는 난수의 수를 넣어주시면 됩니다. let random = Int(arc4random_uniform(10)) // 0~9 사이의 난수 생성 만약 여기서 범위를 설정하고 싶다면 수를 더해 원하는 범위를 만들 수 있습니다. let random = Int (arc4random_uniform(10)) + 1 // 1~10 난수 생성

iOS/Swift 2022.01.30

Xcode 단축키

Vscode 단축키가 그대로 호환이 되었다면 좋겠지만 아쉬운 대로 기존에 쓰던 필요한 단축키를 어느 정도 정리 중입니다. 프리뷰 및 해제 Command + option + Enter Command + Enter -> 단일 창으로 들여 쓰기 자동 ctrl + I 콘솔(디버거 창) 오픈 Command + Shift + c 같은 단어 선택 Option + control + e 위 것 전체 선택 버전 Command + ctrl + e 왼쪽 창 제어 Command 숫자 왼쪽 창 제어 Command option 숫자 줄 수직 수평 이동 Command + option [ ] -> alt 방향키 옵션을 제외 좌우 이동 여러 커서 Shift + control + click

iOS/Swift 2022.01.30

[Swift] 고차함수 map, filter, reduce

자바 스크립트에서 유용하게 사용했던 문법들 입니다. 스위프트에서도 비슷하게 사용 가능합니다. // 고차함수 // map, filter, reduce let a: [Int] = [1,2,3,4,5] var doubleA: [Int] = [] // map에는 클로저를 넣는다. doubleA = a.map({(number: Int)-> Int in return number * 2 }) print(doubleA) // 축약법 //doubleA = a.map{ $0 * 2} // filter // return 값이 True인 값만 반환 // reduce // 컨테이너 내부의 콘텐츠를 하나로 통합 let numbers: [Int] = [10,20,30] let sum: Int = numbers.reduce(0, {..

iOS/Swift 2022.01.25

[Swift] extension 익스텐션

// 익스텐션 // 타입에 새로운 기능을 추가할 수 있는 기능 //extension 확장할 타입 { //} //extension String: 프로토콜1,프로토콜2,프로토콜3 { // //} // 예시 extension Int { var isEven: Bool { return self % 2 == 0 } var isOdd: Bool { return self % 2 == 1 } } print(1.isEven) print(2.isEven) // 메서드 추가 예시 extension Int { func multiply(by n: Int) -> Int { return self * n } } print(3.multiply(by: 3)) // 생성자 추가 예시 extension String { init(intType..

iOS/Swift 2022.01.25

[Swift] 프로토콜 protocol

// 프로토콜 // protocol 프로토콜 이름 { // 정의 //} import CoreGraphics // 프로토콜을 채용하면 해당 조건을 지켜줘야 한다. protocol a { // 프로퍼티는 항상 var로 요구 // get은 익기만 가능해도 됨 // get set은 읽기 쓰기 모두 가능해야 함 var topic: String { get set } var language: String{ get } // 메서드 요구 // 구현은 안해도 됨 func talk() // 생성자 요구 init(topic: String, language: String) } // 프로토콜 채택 struct Person: a { var topic: String let language: String // var subject: ..

iOS/Swift 2022.01.25

[Swift] assert 와 guard

// assert, guard // 값 확인에 사용 // assert // 디버깅 모드에서만 작동 var a: Int = 0 // 맞으면 지나감 아니면 출력하고 중지 assert(a == 0, "someInt != 0") a = 1 //assert(a == 0, "someInt != 0") // guard 는 빠른 종료를 위한 구문 // if else로 구현하는 것과 비슷 // 예시 var count: Int = 1 while true{ guard count < 3 else{ break } print(count) count += 1 } // 딕셔너리에서 유용 // 참고로 딕셔너리에서 꺼내오는 값은 항상 옵셔널(값이 없을 수도 있으니까) func exFunc(info: [String: Any]){ // i..

iOS/Swift 2022.01.25