Swift Collection의 한 종류인 Dictionary에 대해서 공부를 해 봅시다. Dictionarys는 해시 테이블의 유형입니다. 원하는 항목에 빠르게 접근할 수 있습니다. 단어적 의미는 사전이죠. 실제 영한사전을 예로 들어보겠습니다. Apple의 뜻을 찾기 위해 사전에 검색을 했습니다. 그러면 우리가 원하는 사과를 얻을 수 있습니다. 이렇게 내가 원하는 key를 알 때에 값에 빠르게 접근할 수 있는 Collection입니다. Dictionary Swift의 Dictionary 또한 같다고 생각하시면 됩니다. 즉 key 와value 를 저장할 수 있는 컬렉션입니다. 예시에서 말한 Apple은 key에 해당하고 사과는 value에 해당합니다. 정리하자면 key값을 통해서 Dictionary에 있..
오늘은 Swift Collection의 한 종류인 Array 배열 사용에 대해서 알아봅시다. 컬렉션은 수많은 데이터를 묶어 저장하고 관리할 수 있는 데이터 타입입니다. Aarray 배열 배열은 순서를 가지고, 같은 데이터 타입을 저장할 수 있는 컬렉션입니다. 각각의 요소는 순번이 있습니다. 이것을 Index(인덱스)라고 부르고, 배열의 인덱스를 통해서 각각 요소들에 접근할 수 있습니다. 컴퓨터는 0에서 시작하기 때문에 인덱스 역시 0부터 시작합니다. 4개의 Element가 있다면 0 -> 3까지가 됩니다. Array 배열 생성 let numbers: [Int] = [1, 2, 3, 4] let numbers: Array = [1, 2, 3, 4] Swift Array 배열을 생성하는 방법 입니다. [데이..
Swift의 큰 특징 중 하나라고 생각이 되는데요. 바로 Optional(옵셔널)입니다. 영어 의미로는 '선택적인' 이라는 뜻입니다. 어떤 의미일까요? 변수에 값이 있을 수도 있고, 없을 수도 있다 라는 것을 표현하기 위해서 사용합니다. 즉 '없는 것에 대해서 어떻게 표현을 할 것이냐.' 라는 개념입니다. swift에서는 nil이라는 값으로 없는 값을 표현하고 있으며, 값이 없는 경우를 나타내야 할 때에 optional을 사용하면 됩니다. 구글 번역기에서도 nil을 검색하면 '무'라는 의미로 나타납니다. Optional은 언제 사용할 까? var name: String = "minmong" var petName: String = "" 그럼 Optional은 언제 사용을 해야 할까요? 예를 들어 보겠습니다..
This app could not be installed at this time Xcode에서 Simulator를 실행할 때에 해당 에러 메시지 팝업창을 보여주면서 앱이 설치가 되지 않을 때가 있습니다. 분명 빌드는 성공했는데 말이죠. 시뮬레이터에 있는 앱을 지우고 반복하여도 계속 동일한 증상을 보입니다. Link 과정에서의 문제나, 로컬 빌드 데이터의 문제로 보이는데요. 혹은 Simulator앱이 실행은 되었는데 더 이상 진행되지 않고 검은색 화면만 덩그러니 나오고 있을 때 경험 있으신가요? 빌드는 잘되는데 계속 실행에 있어서 문제를 볼 수 있죠. 로그를 보면 앱 런치 화면으로도 넘어가지 못한 거처럼 보이더군요. TIP 이럴 때는 Simulator 전체 리셋을 해주면 정상 동작하게 됩니다. Erase ..
swift Function 함수 사용에 대해서 알아 보겠습니다. 프로그래밍에서 함수란 특정 기능을 수행하는 코드 집합이라고 생각하면 됩니다. 함수에는 함수를 호출 할 수 있도록 이름을 정의해 주어야 합니다. 함수 정의하기 func functionName(external paramName: paramType) -> returnType { //.......... 함수 코드 수행 return returnValue } swift에서 함수를 정의할 때에는 func키워드를 이용합니다. 그리고 functionName 함수의이름은 이름을보고 어떤 동작을 하는 함수있지 판단이 될수 있도록 구체적으로 지어주면 좋습니다. swift의 parameter는 조금 특이한 부분이 있는데요. 외부에서 사용할 매겨변수 이름을 따로 정..
Tuple(튜플)은 다양한 데이터의 값들을 묶어놓은것이라고 할 수 있습니다. 사용하는건 배열 같은 방식으로도 사용이 가능합니다. 하지만 배열처럼 데이터 형이 서로 같을 필요가 없습니다. 따라서 간단한 구조체라고 생각하면 이해하기 쉽습니다. Tuple(튜플) let Origin:(Int, Int) = (0, 0)// 데이터형을 이렇게 지정해 줄 수 있습니다. let Coordinate = (3, 5)// 타입추론으로 값만 입력해 주어도 됩니다. let x = coordinates.0 let y = coordinates.1 Tuple(튜플)의 사용방법은 ( ) 괄호 안에 ,를 이용하여서 데이터 값을 적어주면됩니다. C에서 배열을 사용할 때 {} 중괄호를 사용한것과 유사합니다. Tupledp 접근하는 방법은 ..
swift flow control중 하나인 switch - case문을 알아봅시다. switch문은 특정 값을 받아 내가 미리 지정한 case 조건에 충족한 코드가 실행되는 분기문입니다. swift의 switch의 경우 C언어와는 달리 각각의 case 를 빠져나갈때에 break를 사용할 필요가 없습니다. switch 기본 사용 방법 let num = 5 switch num { case 0: print("0 입니다.") case 5: print("5 입니다.") default: print("나머지 수 입니다.") } switch에 값 을 넣어주게 되면 내가 미리 지정해 놓은 case 들의 값들과 비교한 후 조건에 맞는 코드가 실행 됩니다. 위의 코드를 보면 switch 값으로 num 들어왔고 num은 5인..
swift 문법 반복문 while, repeat while을 알아보고 사용해 봅시다. for loop처럼 while 문 안에 있는 코드를 조건에 따라서 반복시킬 수가 있습니다. while while 조건 { // code.... } while 문의 기본 형태입니다. while 후에 조건을 통해서 코드가 반복되게 됩니다. var i = 0 while i < 10 { print(i) i += 1 } 해당 코드의 while 반복문의 조건을 보면 i < 10보다 작을 경우에 반복이 됩니다. 스코프 안쪽의 코드를 보면 i를 출력하고 나서 1씩 더해주고 있습니다. 결과는 어떻게 될까요? 처음 while을 만났을때 i는 0이기 때문에 10보다 작습니다. 조건을 만족했으니 스코프 안의 코드가 조건에 따라서 반복 실행됩..
회사에서 Unity를 이용하여서 간단한 게임을 만들어야 하는 상황입니다. 그러던 중 갑자기 제가 남기지 않은 로그가 Console 창에서 계속 찍히고 있었습니다. Unity를 이제 배우면서 하고 있기 때문에 해당 로그가 낯설었지만, 로그의 내용을 보았습니다. There are 2 audio listeners in the scene. Please Ensure there is always exactly one audio listener in the scene. audio listener가 Scene에 2개가 있다며 한 개의 audio listener Scene 에서 하나로 만들라는 내용의 로그입니다. 이런 로그 내용을 발생 시킬 만한것을 하지 않았는데,,, 소스를 pull 하니 발생을 했기 때문에 git의 ..
swift 프로그래밍에서 코드를 반복적으로 수행하게 해주는 반복문에 대해서 알아봅시다. C++에서는 for, while, do while이 있는데요. swift에서도 똑같은 기능의 반복문이 있습니다. for loop문 for 반복문의 경우는 특정한 범위를 지정하면 그 지정한 범위만큼 스코프안에 있는 코드를 반복하게 됩니다. for문의 경우는 반복할 범위를 지정해 줄 수 있습니다. let forRange = 0...10 // 0 ~ 10 let forRange2 = 0..
swift(스위프트)에는 문자열에 아주 편하고 강력한 기능이 있습니다. String Interpolation 바로 문자열 삽입이라고 하는 기능인데요. 문자열에 변수들을 삽입할 수 있습니다. C에서는 문자열 포맷을 사용해서 변수들의 값을 넣어 줄 수 있었지만, swift에서는 아주 손쉽게 문자열에 변수를 삽입할 수 있습니다. // \(변수)을하면 문자열에 삽입 할 수 있게 된다. let price = 5000 let message = "가격은 ₩\(price) 입니다." 해당 코드를 실행시키면 문자열에 price 변수의 값이 5000이 삽입 된것을 확인할 수 있습니다.
swift에서 참, 거짓을 구분하기 위해서는 어떤 데이터 형을 사용할까요? Boolean 타입으로 Bool을 사용합니다. 참은 true, 거짓은 false로 값을 표현합니다. 토글 버튼처럼 켜져 있는 상태 꺼져 있는 상태처럼 on/off라고도 생각해보면 조금 쉽게 이해할 수 있을 거 같습니다. Bool Type let yes = true let no = false option키를 누르고 yes 혹은 no를 눌러보면 이렇게 Bool 타입을 볼 수 있습니다. let isOneGreaterThanTwo = 1 > 2 if isOneGreaterThanTwo { print("---> 참") } else { print("---> 거짓") } isOneGreaterThanTwo를 보면 1은 2보다 크다라고 되어있습..