일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- 루메나
- 아이폰12
- TimeMachine
- 27UP850N
- LUMENA
- Iphone 12
- iphone
- 오난코리아
- It
- mysql
- 코딩
- 애플
- 맥북
- 맥
- 웹 프로그래밍
- 샤오미
- Fan Pro 3세대
- V20
- iOS 14
- 맥북프로
- macbook
- 휴대용 선풍기
- Mac
- wwdc 2020
- 타임머신
- LG V20
- html
- AWS
- EC2
- 프론트
- Today
- Total
목록개발&코딩/Swift (4)
이것저것 적어보는 블로그
Swift를 공부하면서 매번 제대로 정리가 안되는 개념이 있는데 바로 옵셔널(Optional)이다. 그래서 이참에 포스팅하면서 정리해두려고 한다. 옵셔널이란 변수의 값이 있을 수도 있고 없을 수도 있다는걸 나타낸다. 불편해보이는 Optional 왜 사용할까 싶은데 Objective-C에 아직 nil타입이 존재하며, 프로젝트에서 obj-c와 swift를 혼용해서 사용할 수 있어 obj-c와 상호운용성을 위해 사용한다고 한다. 옵셔널이 필요한 이유 -> nil의 가능성을 명시적으로 표현 Type casting, nil value 체크 등에 있어서 중요한 역할 nil 가능성을 문서화 하지 않아도 코드만으로 충분히 표현가능 문서 / 주석 작성 시간을 절약 전달 받은 값이 옵셔널이 아니라면 nil체크를 하지 않더..
iOS App을 개발하다보면 Strong과 Weak이란 키워드가 쓰이는걸 볼 수 있다. 이 두가지는 메모리 회수 정책과 관련이 있다. 먼저 메모리 관리인 ARC에 대해 알아보면 ARC (Automatic Reference Counting) 자동으로 메모리를 관리해주는 방식을 말한다. 컴파일 시점에 동작하며 참조 카운팅이 0이 될때만 메모리에서 해제한다. 클래스의 새로운 인스턴스를 만들 때 ARC는 인스턴스의 정보를 저장하기 위해 메모리를 할당하며 ARC는 인스턴스가 더 이상 사용되지 (참조 카운팅 0) 않는다고 판단하면 메모리를 해제한다. 레퍼런스 프로퍼티에 인스턴스를 할당하면 ARC는 참조되는 프로퍼티의 갯수를 카운팅하여 참조하는 모든 변수가 인스턴스를 해제하기 전에 ARC는 인스턴스를 메모리에서 해제..
상수와 변수, 함수, 클래스의 이름을 지정할 때는 다음과 같은 규칙을 지켜야 한다. 1) 유니코드를 포함한 어떤 문자든지 사용 가능. 아래와 같은 경우는 사용 불가. 특수 문자, 수학 기호, 화살표, 개인용(혹은 유효하지 않은) 유니코드, 선, 상자, 그리기용 문자 Swift 예약어 혹은 키워드 연산자로 사용될 수 있는 기호 (+, -, *, /) 공백이 포함된 이름 2) 숫자로 시작할 수 없음 3) 이름을 읽었을 때 무슨 역할을 하는 것인지 파악되어야 함 4) 명사와 동사 또는 전치사로 이루어진 단어를 연결하여 만든다 5) 클래스, 수조체, 익스텐션, 프로토콜, 열거형 이름은 타입의 이름이므로 대문자의 명사로 시작. 대문자 카멜케이스 PersonInfo 6) 함수나 메서드, 인스턴스 이름은 소문자의 동..
1. 함수선언의 기본 형태 func 함수이름(매개변수1 이름: 매개변수1 타입, 매개변수2 이름: 매개변수2 타입 ...) -> 반환타입 { /* 함수 구현부 */ return 반환값 } 2. 반환 값이 없는 함수 func 함수이름(매개변수1 이름: 매개변수1 타입, 매개변수2 이름: 매개변수2 타입 ...) -> Void { /* 함수 구현부 */ return } 3. 매개변수가 없는 함수 func 함수이름() -> 반환타입 { /* 함수 구현부 */ return 반환값 } 4. 매개변수와 반환값이 없는 함수 func 함수이름() -> Void { /* 함수 구현부 */ return } // 반환 값이 없는 경우, 반환 타입인 Void를 생략 할 수 있다. func 함수이름() { /* 함수 구현부 *..