해당과정은 계산기 코드를 짜면서 단일 책임 원칙과 의존성 역전 원칙을 적용시켜 가면서 얻은 고찰입니다. 기존 코드를 짰을 때는 돌아기만 하면 된다는 생각으로 코드를 작성하였습니다. 기본적인 기능 구현 Calculator.kt class Calculator { private val keys = setOf( Key.CALCULATE_STOP, Key.CALCULATE_ADD, Key.CALCULATE_MINUS, Key.CALCULATE_MULTIPLY, Key.CALCULATE_DEVIDE, ) fun calculate() { println("계산을 진행하겠습니다.") println( "계산의 종류\n" + "------------------------------------------------------..
break poin 행번호 왼쪽을 클릭하면 브레이크 포인트(파란 오각형) 생기고 해당 줄에서 실행이 멈춤 실수로 브레이크 포인트를 만들었다면 파란 오각형을 오른쪽으로 드래그하여 삭제 스위치 소스 Action switchOnOff(_ sender :UISwitch){ if sender.isOn { //켜 있을 때 } else { //꺼 있을 때 } } 세그먼트 컨트롤의 인덱스 If sender.selectedSegmentIndex == 0 { } else { } 디폴트 인자(매개변수) present(_:animated:completion:) | Apple Developer Documentation
Attributes 선언(declaration)에 적용되는 것과 type에 적용되는 두 가지 attribute가 있음 선언과 타입에 부가적인 정보를 제공 @기호 다음에 attribute 이름과 argument 지정 인터페이스 빌더(Interface Builder)에서 사용하는 attribute Xcode 내의 Interface Builder 편집기는 코드를 작성하지 않고 전체 사용자 인터페이스를 간단하게 디자인할 수 있도록 해주는 프로그램 Interface Builder attribute은 Xcode와 동기화하기 위해 Interface Builder에서 사용하는 declaration attribute IBAction, IBSegueAction, IBOutlet, IBDesignable, IBInspect..
Xcode 화면구성 Navigator/Document/Outline/inspector/Canva Attributes Swift에는 선언에 적용되는 속성과 유형에 적용되는 속성의 두 가지 종류가 있습니다. 속성은 선언 또는 유형에 대한 추가 정보를 제공합니다. 예를 들어, discardableResult함수 선언 의 속성은 함수가 값을 반환하더라도 반환 값이 사용되지 않는 경우 컴파일러에서 경고를 생성하지 않아야 함을 나타냅니다. @속성 이름과 속성이 허용하는 모든 인수 다음에 기호 를 작성하여 속성을 지정합니다 . 1. @attribute name 2. @attribute name(attribute arguments) 일부 선언 속성은 속성 및 특정 선언에 적용되는 방법에 대한 추가 정보를 지정하는 인수..
Dock 윈도우의 하단에 위치한 상태바와 같은 역할 시스템환경설정과 Dock 환경설정 시스템환경설정 : MS Windows의 제어판에 해당, 대부분 [확인]버튼 없고 변경한 사항이 바로 적용됨 Macbook keyboard 참고 : https://support.apple.com/ko-kr/HT201236 Mac 키보드 단축키 특정 키 조합을 눌러 보통은 마우스, 트랙패드 또는 기타 입력 기기가 있어야 가능한 작업을 수행할 수 있습니다. support.apple.com Command ⌘키는 윈도우의 Ctrl키와 거의 동일한 기능을 가짐 Ctrl로 가능했던 단축키가 맥에서는 ⌘로 가능 ex) 복사(⌘+c), 붙여넣기(⌘+v)나 되돌리기(⌘+z)등 한글,영어를 교체할 땐 윈도우의 CapsLock키로 전환이 가..
소스변형1 p10, extension +p21~22 protocol protocol Print { } extension Print { func HelloWorld() { print("Hello World!") } } class Test : Print { } var x = Test() x.HelloWorld() // 출력 : Hello World! 소스변형2 p10, extension +p32~33 열거형 enum Compass { case North case South case East case West } extension Compass { var result : String { switch self { case .North: return "북" case .South: return "남" case .E..
extension Extensions — The Swift Programming Language (Swift 5.5) - class, struct, enum, protocol에 새로운 기능을 추가 - extension은 하위 클래스를 생성하거나 참조하지 않고 기존 클래스에 메서드, 생성자(initializer), 계산 프로퍼티 등의 기능을 추가하기 위하여 사용 extension 기존타입이름 { // 새로운 기능 } extension Double { var squared : Double { //계산 프로퍼티 return self * self } } let myValue: Double = 3.0 print(myValue.squared) //출력 : 9.0 print(2.0.squared) //출력 : 4.0..
소스변형1 인스턴스 만들고 메서드와 프로퍼티 접근 ,p13 + 클래스(class or type) 메서드 ,p14 + 인스턴스 초기화하기 : init() ,p16 + 인스턴스 만들 때 클래스명 다음 괄호의 의미: init() 호출 ,p17 + self ,p18 + computed property의 setter ,p19~22 + method overloading : 생성자 중첩 ,p23 + 상속 : 부모가 가진 것을 물려받아요, p39 + super : 부모 메서드 호출 시 사용 ,p40 + override : 부모와 자식에 같은 메서드가 있으면 자식 우선 ,p42 class dog{ var age : Int var name : String var sex : Bool var dogAtribute1 : (In..
Method Methods — The Swift Programming Language (Swift 5.5) 인스턴스(instance) 메서드 - 인스턴스 메서드는 인스턴스에서 동작 var 인스턴스명 : 클래스명 = 클래스명() // ": 클래스명" 은 생략 가능 클래스(class or type) 메서드 - 타입 메서드 또는 클래스 메서드는 클래스 레벨에서 동작 - 타입 메서드는 인스턴스 메서드와 동일한 방법으로 선언하지만 class 나 static 키워드를 앞에 붙여서 선언 - class키워드로 만든 클래스 메서드는 자식 클래스에서 override가능 클래스명.클래스메서드() Initialization Initialization — The Swift Programming Language (Swift 5...