강의/강의 챌린지(iOS 앱 개발 올인원 패키지 Online)
패스트캠퍼스 챌린지 16일차
ywangnon
2021. 11. 16. 21:52
08. 프로퍼티 vs 메소드
- Property: 저장된 값 호출
- Method: 정해진 작업 작동
computed property와 메소드의 작업이 같은 때는 고민해봐야함
강의에서는 setter가 필요없고, 계산이 많이 필요하면 Method, 나머지 (setter o) / (setter x, 계산 x) 는 computed property로 정했다.
09. 실습
- static: 메소드, 프로퍼티 둘 다 타입메소드, 타입프로퍼티 가능
- mutating: 값타입(struct)은 인스턴스내에서 프로퍼티를 변형시키는 함수 사용시 muating 키워드 사용
10. 메소드 확장
- extension을 이용해 기존 오브젝트에서 추가적으로 코드를 작성 가능
extension Int {
func square() -> Int {
return self * self
}
func half() -> Int {
return self/2
}
}
// 사용
var val = 3
val.square()
val.half()
스위프트 Class
- RAM에는 Stack, Heap 두 가지 저장공간이 있음
- Stack은 자동으로 데이터를 관리하면서 삭제함. 효율적이고 빠름
- Heap은 크고 Stack보다 느림
- class를 변수로 할당하면, 변수 주소를 스택에 저장하고 그 주소의 Heap 위치에 클래스의 인스턴스(데이터)가 생성됨
Struct | Class |
Value Types | Reference Types |
Copy | Share |
Stack | Heap |
Fast | Slow |
스위프트 Class 실습
var personStruct1 = PersonStruct(firstName: "Jason", lastName: "Lee")
var personStruct2 = personStruct1
var personClass1 = PersonClass(first: "Jason", last: "Lee")
var personClass2 = personClass1
// 서로 다른 오브젝트
personStruct2.firstName = "Jay"
personStruct1.firstName // Jason
personStruct2.firstName // Jay
// 서로 같은 오브젝트
personClass2.firstName = "Jay"
personClass1.firstName // Jay
personClass2.firstName // Jay
// 서로 다른 오브젝트
personClass2 = PersonClass(first: "Bob", last: "Lee")
personClass1.firstName // Jay
personClass2.firstName // Bob
// 서로 같은 오브젝트
personClass1 = personClass2
personClass1.firstName // Bob
personClass2.firstName // Bob
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
수강료 100% 환급 챌린지 | 패스트캠퍼스
딱 5일간 진행되는 환급챌린지로 수강료 100% 환급받으세요! 더 늦기전에 자기계발 막차 탑승!
fastcampus.co.kr
#패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기 #iOS앱개발올인원패키지Online.