iOS 기초개념
이름짓기
- swift는 기본적으로 Camel Case를 사용한다.
- Lower Camel Case : function, method, variable, constant
ex) someVariableName - Upper Camel Case : typeclass, struct, enum, extension...)
ex) Person, Point, Week
- Lower Camel Case : function, method, variable, constant
- 대소문자를 구분한다.
콘솔로그
- print : 단순 문자열 출력하는 함수
- dump : 인스턴스의 자세한 설명(description 프로퍼티)까지 출력하는 함수
문자열 보간법
- String Interplation
- 프로그램 실행 중 문자열 내에 변수 또는 실질적인 값을 표현하기 위해 사용
- \()
상수
- 차후에 변경이 불가능하다,
- 상수 선언 키워드 : let
- 상수의 선언
- let 이름: 타입 = 값
- 값의 타입이 명확하면 타입은 생략 가능
변수
- 차후에 변경이 가능하다.
- 변수 선언 키워드 : var
- 변수의 선언
- var 이름: 타입 = 값
- 값의 타입이 명확하면 타입은 생략 가능
데이터 타입
swift는 데이터 타입에 매우 엄격하다.
기본 데이터 타입
- Bool 타입
- ture와 false 두 가지 값만 가지는 타입
- 선언시 0이나 1을 쓰면 Int 타입의 value로 인식하여 에러 발생
- 예시 : var someBool: Bool = true
- Int 타입
- 정수형 타입 : 양수, 0 , 음수
- 실수를 넣을 경우 에러 발생
- 예시 : var someInt: Int = -100
- UInt 타입
- 부호가 없는 양의 정수
- 음수를 넣을 경우 에러 발생
- Int타입의 변수를 UInt타입의 변수에 넣을 경우 에러가 발생한다 -> 데이터 타입에 엄격하기 때문
- 예시 : var someUInt: UInt = 100
- Float 타입
- 32bit 부동소수형 타입
- 정수 타입을 넣어도 문제 없음
- 예시 : var someFloat: Float = 3.14
- Double타입
- 64bit 부동소수형 타입
- Double타입 변수에 Float타입의 변수를 넣으면 에러 발생
- 예시 : var someDouble: Double = 3.14
- Character타입
- 한 글자(문자)를 표현하기 위한 데이터 타입
- 유니코드로 표현할 수 있는 모든 문자를 넣을 수 있음
- ""를 사용
- 예시 : var someCharacter: Character = "가"
- String타입
- 여러 문자를 표현 가능
- 연산자 + 를 사용해서 합해서 사용 가능
- 문자열인 String타입도 문자타입인 Character타입 사용 불가능
- 예시 : var someString: String = "하하하"
someString = someString + "웃으면 복이와요"
데이터 타입 위치에 들어갈 수 있는 특별한 친구들
- Any
- swift의 모든 타입을 지칭하는 키워드
- Any타입으로 선언된 변수는 다른 특정 타입의 변수에 넣을 수 없다.
- 예시 : var someAny: Any = 100
someAny = "안녕하세요"
someAny = 3.14
- AnyObject
- 모든 클래스 타입을 지칭하는 프로토콜
- 클래스의 인스턴스만 사용 가능
- 예시 : class SomeClass {}
var someAnyObject: AnyObject = SomeClass()
- nil
- 없음을 의미하는 키워드
- Any를 사용하여 선언된 변수에도 넣을 수 없음
컬렉션 타입
컬렉션 타입은 여러 값들을 묶어서 하나의 변수로 사용 가능하게 해준다.
- Array
- 순서가 있는 리스트 컬렉션
- var integers: Array<Int> = Array<Int>() //빈 Int Array생성
integers.append(1) //1을 Array에 넣어줌
integers.append(100.1) //float,Double 타입을 넣으면 에러 발생
integers.contain(1) //contains를 사용하여 Array에 값이 있는지 확인하여 true,false로 반환
integers.remove(at : 0) //인덱스 번호를 지정해서 삭제 가능
integers.removeLast() //마지막 인덱스 값을 삭제
integers.removeAll() //모든 값을 삭제
integers.count //몇 개의 값이 들어있는지 확인 - let을 사용하여 선언하면 추가나 수정 불가능
- Dictionary
- 키와 값의 쌍으로 이루어진 컬렉션
- Key가 String타입이고 Value가 Any인 빈 Dictionary생성
var anyDictionary: Dictionary<String, Any> = [String, Any]()
anyDictionary["someKey"] = "value" // 키에 해당하는 값 할당
anyDictionary["anotherKey"] = 100
print(anyDictionary) // ["someKey": "value", "anotherKey": 100]
anyDictionary["someKey"] = "dictionary" // 키에 해당하는 값 변경
print(anyDictionary) // ["someKey": "dictionary", "anotherKey": 100]
anyDictionary.removeValue(forKey: "anotherKey") // 키에 해당하는 값 제거
anyDictionary["someKey"] = nil
print(anyDictionary) - let을 사용하여 선언하면 추가나 수정 불가능
- Set
- 순서가 없고, 멤버가 유일한 컬렉션
- var integerSet: Set<Int> = Set<Int>() //비어있는 Int Set 생성
integerSet.insert(1) //insert를 이용하여 값 넣어줌
integerSet.insert(100)
integerSet.insert(100) //중복된 값은 넣을 수 없음
Array와 같은 방식으로 contains와 count, remove사용 - 집합 연산에 많이 활용
'iOS-Study' 카테고리의 다른 글
iOS Study : 4주차 - 사용자 정의 타입, 클로저 (0) | 2022.11.27 |
---|---|
iOS Study : 3주차 - SwiftUI (0) | 2022.11.19 |
iOS Study : 3주차 - 함수, 제어 구문, 옵셔널 (0) | 2022.11.19 |
iOS Study : 2주차 내용정리 - SwiftUI (0) | 2022.11.11 |
iOS-study : 1주차 내용 정리 (0) | 2022.11.04 |