검색결과 리스트
분류 전체보기에 해당되는 글 15건
- 2018.05.31 iOS with Swift - 앱에서 디바이스 버전에 따른 분기 처리
- 2017.08.04 14. 딕셔너리 (Dictionary)
- 2017.08.04 13. Swift 구조체와 클래스
- 2017.08.04 12. Swift 클로저(Closure)
- 2017.08.04 11. Swift 함수의 중첩
- 2017.08.04 10. Swift 일급 객체로서의 함수
- 2017.08.04 9. Swift 매개변수 1
- 2017.08.04 8. Swift 함수(Function)
- 2017.08.04 7. Swift 옵셔널 (Optional)
- 2017.08.04 6. Swift 튜플 (Tuple)
글
iOS with Swift - 앱에서 디바이스 버전에 따른 분기 처리
✅ 디바이스 버전 확인
print(UIDevice.current.systemVersion)
결과값
11.3
1️⃣ Bool 값 으로 체크
print(UIDevice.current.systemVersion.hasPrefix("11"))
print(UIDevice.current.systemVersion.hasPrefix("10"))
print(UIDevice.current.systemVersion.hasPrefix("9"))
위와 같이 프린트를 찍어 보면 아래와 같이 결과 값이 찍힌다.
true
false
false
사용 예)
if UIDevice.current.systemVersion.hasPrefix("11") == true {
print("ios 11 버전")
} else {
print("ios 11 외 버전")
}
2️⃣ 특정 버전 이상 체크
if #available(iOS 10, *) {
print("ios 10 버전 이상")
} else {
print("ios 10 버전 미만")
}
3️⃣ 버전 체크 세분화
let os = ProcessInfo().operatingSystemVersion
switch (os.majorVersion, os.minorVersion, os.patchVersion) {
case (11, 3, 0):
print("iOS = 11.3.0 메이저,마이너,패치 버전 까지 체크")
case (11, 3, _):
print("iOS = 11.3.? 마지막 패치 버전 상관 없음")
case (11, _, _):
print("iOS = 11.?.? 마이너 & 패치 버전 상관 없음")
default:
print("iOS = 11 버전 아님")
}
글
14. 딕셔너리 (Dictionary)
14. 딕셔너리 (Dictionary)
- 고유 키 (Key) 와 귿에 대응하는 값(Value) 을 연결 하여 데이터를 저장하는 자료형이다. 인덱스 정수 대신 문자열 등의 고유 키를 사용한다는 차이를 제외 하면 배열과 아주 흡사하다.
- 하나의 키는 하나의 데이터에만 연결되어야 한다.
- 하나의 딕셔너리에서 키는 중복될 수 없다. 중복해서 선언하면 아이템 추가가 아니라 수정이 이루어져 기존 키에 연결된 데이터가 제거 된다.
- 저장할 수 있는 데이터 타입에는 제한이 없지만, 하나의 딕셔너리에 저장하는 데이터 타입은 모두 일치 해야 한다.
- 딕셔너리의 아이템에는 순서가 없지만 키에는 내부적으로 순서가 있으므로 for~in 구문을 이용한 순회 탐색을 할 수 있다.
- 딕셔너리에서 사용할 수 있는 키의 타입은 거의 제한이 없으나 해시 연산이 가능한 타입이어야 한다.
키
| 저장된 값
|
KR
| Seoul
|
EN
| London
|
FR
| paris
|
- 딕셔너리의 초기화
- 딕셔너리의 선언과 초기화
- 딕셔너리에 동적 아이템 추가 하기
- 데이터 수정 하기
- 데이터 삭제 하기
- 딕셔너리 순회탐색
'Swfit' 카테고리의 다른 글
13. Swift 구조체와 클래스 (0) | 2017.08.04 |
---|---|
12. Swift 클로저(Closure) (0) | 2017.08.04 |
11. Swift 함수의 중첩 (0) | 2017.08.04 |
10. Swift 일급 객체로서의 함수 (0) | 2017.08.04 |
9. Swift 매개변수 (1) | 2017.08.04 |
글
13. Swift 구조체와 클래스
13. Swift 구조체와 클래스
- 구조체와 클래스의 공통점
- 프로퍼티
- 변수나 상수으를 사용하여 값을 저장하는 프로퍼티를 정의할 수 있다.
- 메소드
- 함수를 사용하여 기능을 제공하는 메소드를 정의할 수 있다.
- 서브스크립트
- 속성값에 접근할 수 있는 방법을 제공하는 서브스크립트를 정의할 수 있다.
- 초기화 블록
- 객체를 원하는 초기 상태로 설정해주는 초기화 블록을 정의할 수 있다.
- 확장
- 객체에 함수적 기능을 추가하는 확장(extends)구문을 사용할 수 있다.
- 프로토콜
- 특정 형식의 함수적 표준을 제공하기 위한 프로토콜을 구현할 수 있다.
- 구조체와 클래스의 차이점
- 상속
- 클래스의 특성을 다른 클래스에게 물려줄 수 있다.
- 타입 캐스팅
- 실행 시 컴파일러가 클래스 인스턴스의 타입을 미리 파악하고 검사할 수 있다.
- 소멸화 구문
- 인스턴스가 소별되기 직전에 처리해야 할 구문을 미리 등록해 놓을 수 있다.
- 참조에 의한 전달
- 클래스 인스턴스가 전달될 때에는 참조 형식으로 제공되며, 이때 참조가 가능한 개수는 제약이 없다.
- 구조체와 클래스 이름의 첫 글자는 대문자로, 나머지 글자는 소문자로 작성한다.
- 2개 이상의 복합 단어는 단어별로 끊어 첫 글자는 대문자로, 나머지는 소문자로 작성한다.
- 이미 축약된 약어는 모두 대문자로 작성 가능하다(ex: JSON, NS , HTTP 등)
- 프로퍼티나 메소드를 선언할 때는 소문자로 시작한다.
- 언더바로 단어를 연결하는 방식은 지양한다.
'Swfit' 카테고리의 다른 글
14. 딕셔너리 (Dictionary) (0) | 2017.08.04 |
---|---|
12. Swift 클로저(Closure) (0) | 2017.08.04 |
11. Swift 함수의 중첩 (0) | 2017.08.04 |
10. Swift 일급 객체로서의 함수 (0) | 2017.08.04 |
9. Swift 매개변수 (1) | 2017.08.04 |
글
12. Swift 클로저(Closure)
12. Swift 클로저(Closure)
- 클로저는 두 가지로 이루어진 객체이다. 하나는 내부 함수이며, 또 다른 하나는 내부 함수가 만들어진 주변 환경이다.
- 클로저는 외부 함수 내에서 내부 함수를 반환하고, 내부 함수가 외부 함수의 징역 변수나 상수를 참조할 때 만들어 진다.
- 클로저란 내부 함수와 내부 함수에 영향을 미치는 주변환경(Context)을 모두 포함한 객체이다
- 전역 함수 - 이름이 있으며, 주변 환경에서 캡쳐할 어떤 값도 없는 클로저
- 중첩 함수 - 이름이 있으며 자신을 둘러싼 함수로부터 값을 캡쳐할 수 있는 클로저
- 클로저 표현식 - 이름이 없으며 주변 환경으로부터 값을 캡쳐할 수 있는 경량 문법으로 작성된 클로저
'Swfit' 카테고리의 다른 글
14. 딕셔너리 (Dictionary) (0) | 2017.08.04 |
---|---|
13. Swift 구조체와 클래스 (0) | 2017.08.04 |
11. Swift 함수의 중첩 (0) | 2017.08.04 |
10. Swift 일급 객체로서의 함수 (0) | 2017.08.04 |
9. Swift 매개변수 (1) | 2017.08.04 |
글
11. Swift 함수의 중첩
11. Swift 함수의 중첩
- 스위프트에서 함수는 중첩하여 작성할 수 있다. 함수 내에 다른 함수를 작성해서 사용할 수 있다. 이렇게 작성된 함수를 중첩함수라고 하고 , 중첩 함수를 부분별로 나누어 보면 함수 내에 작성된 함수는 내부 함수, 내부함수를 포함하는 바깥쪽 함수는 외부 함수 로 구분할수 있다.
- 함수내에 작성할 수 있는 내부 함수의 수에는 제한이 없다.
- 내부 함수 내에 또다른 내부 함수를 작성할 수도 있다.
- 내부 함수는 외부 함수가 실행되는 순간 생성되고, 종료되는 순간 소멸한다. 이것이 내부 함수의 생명 주기 이다.
'Swfit' 카테고리의 다른 글
13. Swift 구조체와 클래스 (0) | 2017.08.04 |
---|---|
12. Swift 클로저(Closure) (0) | 2017.08.04 |
10. Swift 일급 객체로서의 함수 (0) | 2017.08.04 |
9. Swift 매개변수 (1) | 2017.08.04 |
8. Swift 함수(Function) (0) | 2017.08.04 |
글
10. Swift 일급 객체로서의 함수
10. Swift 일급 객체로서의 함수
- 스위프트는 객체지향 언어이자 동시에 함수형 언어이다. 함수형 언어를 학습하게 되면 반드시 일급 객체 라는 용어를 접하게 되는데,이것은 크리스토퍼 스트래치 라는 영국의 컴퓨터 과학자가 1960년대에 처음 사용한 개념으로서, 프로그램 언어 안에서 특정 종류의 객체가 일급의 지위를 가지는가에 대한 의미이다.
- 일급 함수의 특성
- 객체가 런타임에도 생성이 가능해야 한다.
- 인자값으로 객체를 전달할 수 있어야 한다.
- 반환값으로 객체를 사용할 수 있어야 한다.
- 변수나 데이터 구조 안에 저장할 수 있어야 한다.
- 할당에 사용된 이름과 관계없이 고유한 구별이 가능해야 한다
- 변수나 상수에 함수를 대입할 수 있음
- 변수나 상수에 함수를 대입 한다는 것은 말 그대로 함수 자체를 변수에 집어넣는다는 뜻이며,이렇게 함수가 대입된 변수나 상수는 함수처럼 실행할 수도 있고,인자값을 입력받을수도 있다.반환값도 가질수 있다.
- 함수의 반환 타입으로 함수를 사용할 수 있음
- 일급 객체로 대우받는 함수는 실행 결과로 정수,실수,문자열 등의 기본 자료형이나 클래스, 구조체 등의 객체를 반환할 수 있을 뿐만 아니라 함수 자체를 반환할 수도 있다.
- 함수의 인자값으로 함수를 사용할 수 있음
- 함수를 인자값으로 전달할 때 그 함수는 하나의 타입이 된다. 따라서 함수를 입력받는 인자값은 함수 타입으로 정의되어야 한다. 이 점을 제외 하면 인자값으로 함수를 전달하는 방식에는 특별한 것이 없다.
- 콜백 함수
- defer 블록
- defer 블록은 작성된 위치와 순서에 상관없이 함수가 종료되기 직전에 실행된다.
- defer 블록을 읽기 전에 함수의 실행이 종료될 경우 defer 블록은 실행되지 않는다.
- 하나의 함수나 메소드 내에서 defer 블록을 여러 번 사용할 수 있다. 이때에는 가장 마지막에 작성된 defer 블록부터 역순으로 실행된다.
- defer 블록을 중첩해서 사용할 수 있다. 이때에는 바깥쪽 defer 블록부터 실행되며 가장 안쪽에 있는 defer 블록은 가장 마지막에 실행된다.
'Swfit' 카테고리의 다른 글
12. Swift 클로저(Closure) (0) | 2017.08.04 |
---|---|
11. Swift 함수의 중첩 (0) | 2017.08.04 |
9. Swift 매개변수 (1) | 2017.08.04 |
8. Swift 함수(Function) (0) | 2017.08.04 |
7. Swift 옵셔널 (Optional) (0) | 2017.08.04 |
글
9. Swift 매개변수
9. Swift 매개변수
- 내부 매개변수명, 외부 매개변수명
- 내부 매개변수 : 함수가 내부적으로 인자값을 참조하기 위해 사용하는 변수
- 외부 매개변수 : 함수 외부에서 함수나 인자값을 구분하기 위해 사용하는 변수
- 가변 인자
- In Out 매개변수
'Swfit' 카테고리의 다른 글
11. Swift 함수의 중첩 (0) | 2017.08.04 |
---|---|
10. Swift 일급 객체로서의 함수 (0) | 2017.08.04 |
8. Swift 함수(Function) (0) | 2017.08.04 |
7. Swift 옵셔널 (Optional) (0) | 2017.08.04 |
6. Swift 튜플 (Tuple) (0) | 2017.08.04 |
글
8. Swift 함수(Function)
8. Swift 함수(Function)
- 함수의 기본 개념
- 동일한 코드가 여러 곳에서 사용될 때 이를 함수화하면 재작성할 필요 없이 함수 호출만으로 처리할 수 있다.
- 전체 프로세스를 하나의 소스 코드에서 연속적으로 작성하는 것보다 기능 단위로 함수화하면 가독성이 좋아지고, 코드와 로직을 이해하기 쉽습니다.
- 비지니스 로직을 변경해야 할 때 함수 내부만 수정하면 되므로 유지보수가 용이하다.
- 사용자 정의 함수
- 함수 정의
- 함수의 호출
- 함수의 반환값과 튜플
- 타입얼라이어스
'Swfit' 카테고리의 다른 글
10. Swift 일급 객체로서의 함수 (0) | 2017.08.04 |
---|---|
9. Swift 매개변수 (1) | 2017.08.04 |
7. Swift 옵셔널 (Optional) (0) | 2017.08.04 |
6. Swift 튜플 (Tuple) (0) | 2017.08.04 |
5. Swift 집합 (Sets) (0) | 2017.08.04 |
글
7. Swift 옵셔널 (Optional)
7. Swift 옵셔널 (Optional)
- 옵셔널은 스위프트에서 도입된 새로운 개념 이다.
- 값을 처리하는 과정에서 오류가 발생할 가능성이 있는 값을 옵셔널 타입이라는 객체로 감싼 후 반환하는 개념. -> 옵셔널 래핑(optional wrapping) 이라고도 한다.
- 옵셔널 타입
- 옵셔널 강제 해제
- 옵셔널 바인딩
- 옵셔널 바인딩은 조건문 내에서 일반 상수에 옵셔널 값을 대입하는 방식으로 이루어진다.
- 반드시 조건문에서 사용해야만 하며, 상수에 옵셔널 값을 대입한 결과는 true/false 로 리턴 된다.
- 옵셔널 딕셔너리 선언
- 컴파일러에 대한 옵셔널 자동 해제
- 옵셔널의 묵시적 해제
'Swfit' 카테고리의 다른 글
9. Swift 매개변수 (1) | 2017.08.04 |
---|---|
8. Swift 함수(Function) (0) | 2017.08.04 |
6. Swift 튜플 (Tuple) (0) | 2017.08.04 |
5. Swift 집합 (Sets) (0) | 2017.08.04 |
4. Swift 배열 (Array) (0) | 2017.08.04 |
글
6. Swift 튜플 (Tuple)
6. Swift 튜플 (Tuple)
- 튜플은 스위프트에서 제공하는 특별한 성격의 집단 자료형으로서, 파이썬에서도 사용되는 자료형이다. 튜플은 한가지 타입의 아이템만 저장할 수 있는 배열이나 딕셔너리와는 달리 하나의 튶르에 여러 가지 타입의 아이템을 저장할 수 있지만, 일단 선언되고 나면 상수적 성격을 띠므로 더 이상 값을 추가하거나 삭제하는 등의 변경이 불가능하다. 즉, 타입의 관계없이 다양하게 저장할 수 있지만 오직 최최의 선언된 상태의 아이템만 사용할 수 있고 수정이나 삭제, 추가 등 변경할 수 없는 것이 튜플의 특징이라고 할 수 있다.
'Swfit' 카테고리의 다른 글
8. Swift 함수(Function) (0) | 2017.08.04 |
---|---|
7. Swift 옵셔널 (Optional) (0) | 2017.08.04 |
5. Swift 집합 (Sets) (0) | 2017.08.04 |
4. Swift 배열 (Array) (0) | 2017.08.04 |
3. Swift 연산자 (0) | 2017.08.04 |