본문 바로가기

iOS

(15)
[Swift] Closure Closure Closure는 간단하게 설명하자면 이름이 없는 함수라고 할 수 있다. Closure는 First Class Type으로 변수에 할당할 수 있고, 인자로 받을 수 있고, 리턴할 수 있다. Closure가 자주 쓰이는 2가지 경우 - Completion Block 네트워크 통해서 데이터 받아올 때, 비동기 수행 시킬 때 - Higher Order Functions (input에 함수를 받을 수 있는 펑션) map, filter 같은 함수들의 input에 클로저를 넣어서 사용 Closure의 3가지 종류 - Global functions - Nested functions - Closure expressions 우리가 알아볼거는 Closure expressions다. Closure의 기본 문법 ..
[Swift] Collection - Set Set Collection 중 하나인 set은 다른 Collection type들처럼 Set을 통해 선언할 수 있다. insert를 이용해서 set에 추가할 수 있고 remove로 삭제 할 수 도 있다. removeAll()로 모든 요소 삭제도 가능하다. for문에서 sorted를 사용해서 정렬된 값을 받을 수 도 있다. 이 외에도 다른 Collection type들 처럼 isEmpty, count, contains 등등 다양한 기능 사용가능하다. intersection() : 교집합 ex) a.intersection(b) symmetricDifference() : 대칭차집합 union() : 합집합 subtracting() : 차집합
[Swift] Collection - Dictionary Dictionay Collection 중 하나로 key, value 쌍으로 이루어져 있다. Dictionary도 Array랑 비슷하게 [key 타입: value타입] , Dictionary 으로 선언할 수 있다. 아래 코드처럼 key를 이용해서 value를 가져왔을 때 변수의 타입을 확인해 보면optional 인것을 확인할 수 있다. 입력한 key값이 Dictionay에 없는 값 일 수도 있기 때문에 optional타입이다. 만약 입력한 key값이 Dictionay에 없는 값이라면 nil을 반환한다. 위와 같은 방식으로 value 업데이트, 요소 추가, 요소 제거를 할 수 있다. key, value 모두 이용하여 for 문을 사용할 수 있고 .keys를 이용해서 key값만 쓸 수 있고 .values 를 ..
[Swift] Collection - Array Array Collection 중 하나인 Array의 선언 방법은 Array , [타입] 이렇게 두가지가 있다. append와 연산자를 사용해서 요소를 추가할 수 있고 한 개뿐만 아니라 여러 개도 가능하다. isEmpty로 Array가 비었는지 확인 할 수 있다. 비었으면 true, 값이 있으면 false를 리턴해준다. first, last로 Array의 첫 번째 값과 마지막 값을 가져올 수 있다. Array가 비어있을 경우 첫번째 값과 마지막 값이 없을 수 도 있기 때문에 이 값은 optional 타입이다. range를 이용해서 Array의 요소를 범위로 선택할 수 도 있다. for문에서도 사용할 수 있는데 index 값도 필요하다면 enumerated()를 이용해서 위와 같이 index를 가져올 수 ..
[Swift] optional optional 변수의 타입 뒤에 '?'를 붙여서 표현한다. 변수에 값이 없을 수 도 있기 때문에 optional을 사용한다. 값이 없는 경우 nil로 표현한다. optional의 사용 방법 4가지 1. Forced unwrapping optional 변수를 그냥 출력하면 위와 같이 Optional("SYEON")이라고 출력된다. 이럴 때 변수 뒤에 '!'를 붙여서 Forced unwrapping으로 값만 출력할 수 있다. 하지만 변수의 값이 nil인 경우 런타임 에러가 발생하니 '!'를 사용할 때는 주의해야 한다. 2. Optional binding (if let) if let을 사용한 Optional binding이다. 값이 있을 경우 if 에 있는 코드를 수행하고 없을 경우 else에 있는 코드를 ..
[Swift] function function과 method 기능을 수행한다는 점에서 function과 method가 거의 비슷하지만 - method는 오브젝트에 속해서 기능을 수행 ex) object.methodName() - function은 독립적으로 기능 수행 ex) functionName() 함수 파라미터에 external name 설정해 줄 수 있다. -> external name은 함수 외부에서 보여지는 파라미터 이름 이렇게 price 대신 가격으로 파라미터 name을 직관적으로 사용할 수 있다. 반면에 external name 자리에 '_'를 넣으면 파라미터 name을 입력하지 않고 값만 넣어서 사용할 수 도 있다 default값 설정할 수 있다. 위의 코드처럼 파라미터 타입 뒤에 '='을 붙여서 디폴트 값을 설정해 줄..
[Swift] switch문 swift의 switch문이 다른 언어들과 다른 점만 간단하게 정리 1. case에 ... 으로 range를 사용할 수 있다 0...5 -> 0부터 5까지 이므로 '0 5 사이 입니다.'가 출력된다. 2. case에 ',' 이용해서 여러 개를 한 번에 쓸 수 있다 ','를 이용해서 case를 여러 번 사용하지 않고 한 번에 쓸 수 있다. 3. case에 where을 사용해서 조건을 줄 수 있다 4. case에 튜플을 사용할 수 있다 이렇게 case에 튜플을 사용할 수 있고 let x 이런식으로 값을 받을 수 도 있다. 5. break 안써도 된다 swift의 switch는 fallthrough가 자동으로 적용이 안되기 때문에 breack를 사용하지 안하도 다음 case로 넘어가지 않는다.