왕논의 연구실

패스트캠퍼스 챌린지 16일차 본문

강의/강의 챌린지(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()

실습사진 1

스위프트 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

 

 

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.

 

https://bit.ly/3FVdhDa

 

수강료 100% 환급 챌린지 | 패스트캠퍼스

딱 5일간 진행되는 환급챌린지로 수강료 100% 환급받으세요! 더 늦기전에 자기계발 막차 탑승!

fastcampus.co.kr

 

#패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기 #iOS앱개발올인원패키지Online.