iOS/iOS Swift 문법 22

iOS Swift) didSet 사용 예시 (with tableview/ collectionview)

iOS Swift) didSet 사용 예시 (with tableview/ collectionview) func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { let cellId = String(describing: MyCollectionViewCell.self) let cell = collectionView.dequeueReusableCell(withReuseIdentifier: cellId, for: indexPath) as! MyCollectionViewCell cell.profileImg.image = UIImage(systemName: syst..

프로퍼티와 메서드

10.1.4 프로퍼티와 감시자 프로퍼티 감시자(프로퍼티옵저버)를 사용하면 프로퍼티의 값이 변경됨에 따라 적절한 작업을 취할 수 있다. 프로퍼티 감시자는 값이 새로 할당될 때마다 호출됨. 이 때 변경되는 값이 현재의 값과 같더라도 호출. 프로퍼티 감시자는 저장 프로퍼티, 저장 프로퍼티, 연산 프로퍼티에 적용 가능. 연산프로퍼티는 상속받았을 때에만 프로퍼티 재정의를 통해 프로퍼티 감시자를 사용. 프로퍼티 감시자의 종류 willSet 메서드 : 프로퍼티의 값이 변경되기 직전에 호출 didSet 메서드: 프로퍼티의 값이 변경된 직후에 호출 willSet 메서드와 didSet 메서드에는 매개변수가 하나씩 있다. willSet메서드에 전달되는 전달인자: 프로퍼티가 변경될 값 didSet메서드에 전달되는 전달인자: ..

iOS swift 함수

1. 함수와 메서드 함수와 메서드는 기본적으로 같다. 다만 상황이나 위치에 따라 다른 용어로 부른다. 메서드 : 구조체, 클래스, 열거형 등 특정 타입에 연관되어 사용하는 함수 함수: 모듈 전체에서 전역적으로 사용할 수 있는 함수 2. 함수의 정의와 호출 함수에서는 () 소괄호를 생략할 수 없다. (조건문이나 반복문과 달리) 스위프트의 함수: 재정의(오버라이드), 중복정의(오버로드) 모두 지원. -> 매개변수의 개수가 달라도 같은 이름의 함수를 만들 수 있다. 1) 기본적인 함수의 정의와 호출 자유도가 굉장히 높은 문법 중 하나. 함수의 이름, 매개변수(파라미터), 반환타입 등을 사용하여 함수 정의. func 함수이름(매개변수...) -> 반환타입 { 실행구문 return 반환 값 } func hello..

iOS swift 흐름제어

1. 조건문 1) if 구문 ***swift 의 if 구문은 조건 값이 꼭 Bool 이어야 함 if 단독만 쓸 수도 있다.(else if 나 else 없이) 2) switch 구문 switch 입력값 { case 비교값1: 실행 구문 case 비교값2: 실행구문 2 case 비교값3, 비교값4, 비교값5: 한번에 여러 값과 비교 가능 실행구문 3 default: //한정된 범위가 명확치 않다면 default는 필수 실행구문 4 } 3) guard 2. 반복문 1) for-in 구문 for 임시상수 in 시퀀스 아이템 { 실행코드 } for i in 0...2 { print(i) } //0 //1 //2 2) while 구문 for-in구문과 마찬가지로 continue, break등의 키워드 사용이 가능 ..

iOS swift 연산자

*할당 연산자 A = B *산술 연산자 + = * / % *비교 연산자 A === B 참조가 같다 A와 B가 참조(레퍼런스) 타입일 때 A와 B가 같은 인스턴스를 가리키는지 비교하여 불리언 값을 반환. A !== B 참조가 같지 않다. A ~= B 패턴 매치 (A와 B의 패턴이 매치되는지 확인하여 불리언 값을 반환) [참조 비교 연산자] 스위프트의 유일한 참조 타입인 클래스의 인스턴스에서만 참조 비교 연산자를 사용할 수 있다. 스위프트의 기본 데이터 타입은 모두 구조체로 구현되어 있기 때문에 값 타입. 그렇기 때문에 값의 비교 연산에는 ==을 사용하고, 클래스의 인스턴스인 경우에만 === 사용. *삼항 조건 연산자 A ? B : C Question ? A : B Question(불리언값)이 참이면 A 를..

iOS swift 열거형 enum , switch

열거형: 연관된 항목들을 묶어서 표현할 수 있는 타입. 배열이나 딕셔너리 같은 타입과는 다르게, 프로그래머가 정의해준 항목 값 이외에는 추가/수정이 불가. 딱 정해진 값만 열거형 값에 속할 수 있다. 열거형 각 항목이 원시값(Raw Value)이라는 형태로(정수, 실수, 문자 타입 등의) 실제 값을 가질수도 있다. 또는 연관값을 사용하여 다른 언어에서 공용체라고 불리는 값의 묶음도 구현 가능. 열거형은 switch 구문과 만났을 때 멋지게 활용 가능. *기본 열거형 enum enum School { case primary case elementary . . . } *원시 값(raw value) p104~ 열거형의 각 항목은 자체로도 하나의 값이지만 항목의 원시값도 가질 수 있다. 즉, 특정 타입으로 지정..

iOS swift <집단자료형> - 배열

배열 -배열에 저장할 아이템의 타입에는 제약이 없지만, 하나의 배열에 저장하는 아이템 타입은 모두 같아야 함. -선언 시 배열에 저장할 아이템 타입을 명확히 정의해야 함 -배열의 크기는 동적으로 확장할 수 없다. 스위프트에서 배열을 정의하는 방법 2가지 : 정적, 동적 정적 방식: 처음부터 배열을 구성하는 아이템을 포함하여 정의. 이 방식은 별도의 배열 선언이 필요 없다는 장점. 대괄호 사용, 대괄호 내에 차례대로 아이템 나열. var cities = ["Seoul", "New York", "LA"] 리터럴: 값 자체를 의미. 배열의 아이템을 참조하는 방법 cities[0] cities[1] *배열 순회 탐색 :순서가 있는 데이터를 처음부터 마지막까지 차례대로 읽어 들이는 것. 순회탐색에는 주로 반복문이..