일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ios share
- flutterfont
- 프러퍼티
- 스위프트
- 중소기업전세대출연장심사
- DB
- DB연동
- 행나누기
- TEXT속성
- ios공유하기
- ngshow
- Android
- 폰트적용하기
- Context 쉽게
- AndroidStudio
- android 저장
- 전세대출연장
- 공유기능
- Deveopment
- android 내부 저장
- 플러터폰트
- Tomcat
- 플러터폰트적용하기
- adb
- VirtualBox 오류
- JSP
- ng-show
- ios
- SQL분할
- android 데이터 저장
- Today
- Total
beomboo
[스위프트] 프로퍼티 개념 요약 본문
프로퍼티
- 클래스, 구조체, 열거형 등에 관련된 값
- 저장 프로퍼티 = 특정 타입의 인스턴스에 사용, 인스턴스의 변수 또는 상수, 클래스와 구조체에서만 사용
- 연산 프로퍼티 = 특정 타입의 인스턴스에 사용, 값의 저장 x, 특정 연산을 실행한 결괏값
- 타입 프로퍼티 = 특정 타입에 사용되는 프로퍼티
// 클래스, 구조체 같은데에서 사용되는 자원(값), 변수가 해당되는거로 보임
지연 저장 프로퍼티(복잡한 클래스나 구조체 구현에서 효율적)
- 클래스 인스턴스의 저장 프로퍼티로 다른 클래스 인스턴스나 구조체 인스턴스를 할당해야 할 때
- 인스턴스를 초기화하면서 저장 프로퍼티로 쓰이는 인스턴스들이 한번에 생성되어야 하거나 모든 저장 프로퍼티를 사용할 필요가 없는 경우
struct CoordinatePoind{
var x : int = 0
var y : int = 0
}
Class Position {
// lazy는 반드시 var와 쓰여야함,
// 사용되기 전까지는 불필요한 로드를 하지 않음
lazy var point : CoordinatePoint = CoordinatePoint()
let name: String
init(name : String){
self.name = name
}
}
// Position이라는 객체는 생성됬지만 아직 CoordinatePoint는 객체에 생성되지 않은 상태.
let yagomPosition: Position = Position(name: "yagom")
// 이 코드를 통해 point 프로퍼티로 처음 접근할 때 point 프로퍼티의 CoordinatePoint가 생성됨
print(yagomPosition.point)
연산 프로퍼티
- 인스턴스 내/외부 값을 연산하여 적절한 값을 돌려주는 Getter 역할이나 은닉화된 내부의 프로퍼티 값을 간접적으로 설정하는 Setter 역할 수행.
- 클래스와 구조체 열거형에 모두 추가 가능.
- get, set 메서드를 통하여 간결화.
- 기존에 인스턴스를 외부에서 메서드를 통해 내부 값에 접근하려면 접근자, 설정자 두개의 메서드를 구현해야 했음 (가독성이 나빠짐).
// 연산 프로퍼티를 생성할때
// var oppositePoint: CoordinatePoint{} 이런 형태로 ( : 구조체명 ) 해주는 이유를 모르겠음
읽기 전용 연산 프로퍼티
- get 메서드만 사용
메서드
- 특정 타입에 관련된 함수
'iOS' 카테고리의 다른 글
iPad Native Share 기능 (공유) (0) | 2022.06.30 |
---|---|
MAC 업데이트 후 VirtualBox 오류 (0) | 2022.03.24 |
Showing All MessagesSigning certificate is invalid. Signing certificate "Apple Development: ()", serial number "", is not valid for code signing. It may have been revoked or expired. (0) | 2022.03.02 |
iOS 리젝 대응하기 (0) | 2022.02.17 |
[스위프트] 변수 (0) | 2020.05.27 |