iOS 프로그래밍기초 수업 9주차

도연·2022년 11월 1일
0
post-thumbnail

Human Interface Guidelines

https://developer.apple.com/design/human-interface-guidelines/

extension

  • extension은 하위 클래스를 생성하거나 참조하지 않고 기존 클래스에 메서드, 생성자(initializer), 계산 프로퍼티 등의 기능을 추가하기 위하여 사용

  • 클래스(구조체, 열거형, protocol)는 다음과 같은 형태로 확장(익스텐션)함

    • extension 기존타입이름 {
      // 새로운 기능
      }

표준 자료형 Double 구조체에 두 배의 값을 반환하는 프로퍼티를 추가

extension Double {
  var squared : Double { //기존 Double형 구조체에 계산 프로퍼티 추가
    return self * self
  }
}
let myValue: Double = 3.0
print(myValue.squared)  
print(2.0.squared) 

// 실행결과 
9.0
4.0   

표준 자료형 Double 구조체에 +1 값을 반환하는 프로퍼티를 추가

 extension Double {
    var squared :Double { //기존 Double형 구조체에 계산 프로퍼티 추가
        return self + 1.0
  }
}
let myValue:Double = 3.0
print(myValue.squared)  //4.0
print(2.0.squared)      //3.0

// 실행결과
4.0
3.0

Swift의 access control

접근제어

과제


protocol B { 
func bb(x:Int) -> Int  
}
class C{}  
class A : C, B{ // 클래스 C로부터 상속을 받고 프로토콜 B를 채택함
func bb(x:Int) -> Int { 
return x*2
}
}
let a : A = A() 
print(a.bb(x:3)) // bb 호출함 (argument: 3)

// 실행결과
6
   출처:iOS프로그래밍기초 (22-2학기)한성현교수님 강의 내용 변형 및 요약 9주차
profile
초보개발자..ㅠ

0개의 댓글