목록Class/Swift (16)
브래의 슬기로운 코딩 생활
옵셔널 체이닝 (Optional Chaining) 옵셔널 체이닝 (Optional Chaining) 옵셔널로 선언된 변수의 맴버에 안전하게 접근하기 위한 방법 (?) Optional Chaining 예 class Person { var name: String var age: Int init(name: String, age: Int) { self.name = name self.age = age } } let kim: Person = Person(name: "Kim", age: 20 ) print(kim.age) let han: Person? = Person(name: "Han", age: 25 ) print(han.age) //print(han!.age) // print(han?.age) //Optiona..
화면 전환 방식 - 1 : present 방식 ViewController가 다른 ViewController 호출(present) 다른 ViewController를 Modal로 띄움 UIViewController에 정의된 present 메소드를 사용 돌아올 때 - presentingViewController?.dismiss(animated:) full screen으로 화면 띄우기 - vc.modalPresentationStyle = .fullScreen 뷰 컨트롤러 추가 뷰 컨트롤러 선택 - 아이덴티티 인스펙터 - 스토리보드 아이디 설정(코드에서 쓸) 메인 뷰에 클릭하면 화면 이동이 될 버튼 추가 어시스턴트 에디터 - 버튼을 컨트롤 키를 누르며 소스코드의 클래스로 드래그 하여 액션 함수 추가 위와같이 소스..
Autolayout (오토 레이아웃 이란?) 오토 레이아웃(Auto Layout)은 제약 조건(Constraints)을 이용해서 뷰의 위치를 지정하는 것. 다시 말하면, 두 뷰 사이의 관계를 제약 조건이라는 것을 이용해서 뷰의 크기와 위치를 지정하는 것. 오토 레이아웃은 여러 해상도를 지원하기 위해 만들어 졌다. 아이폰의 크기가 다양해지면서 해상도도 달라졌는데, 다른 크기에서도 같은 화면을 보여주기 위해 오토 레이아웃을 사용한다. 세로 보기 화면뿐만 아니라 가로 보기 화면까지도 지원한다. 위의 이미지를 보면 아이폰SE와 아이폰8, 아이폰8 Plus 기종이 달라도 보여지는 화면이 똑같다는 것을 볼 수 있다. 위의 이미지와 같이 오토 레이아웃은 제약 조건(Constraints)을 이용하여 자동으로 해상도에 ..
BMI 계산 https://www.onlinegdb.com/online_swift_compiler https://replit.com/languages/swift let weight = 60.0 let height = 170.0 let bmi = weight / (height*height*0.0001) // kg/m*m print(bmi) BMI 계산 결과 판정 let weight = 60.0 let height = 170.0 let bmi = weight / (height*height*0.0001) // kg/m*m var body = "" if bmi >= 40 { body = "3단계 비만" } else if bmi >= 30 && bmi < 40 { body = "2단계 비만" } else if b..
앱 개발 기술 분류 native - 안드로이드: JAVA, Kotlin - iOS: Swift, Objective-C cross platform - React native - Flutter hybrid - Web View를 감싸고 있는 웹사이트 - HTML+CSS+JS - Apache Cordova Xcode로 Swift문법 공부하기 Playground로 Swift문법 공부하기 Playground로 Swift문법과 UI테스트 폰트 조절: [Xcode]-[Preferences]-[Themes] 새로운 앱 만들기: [File]-[New]-[Project]-[iOS]-[App] 프로젝트 기본 설정 같은 이름의 프로젝트가 이미 있다면 폴더 변경하거나 이름 변경 프로젝트 생성 후 Xcode 초기 화면 Deploy..
Human Interface Guidelines https://developer.apple.com/design/human-interface-guidelines/components/all-components https://developer.apple.com/design/human-interface-guidelines/ Human Interface Guidelines - Human Interface Guidelines - Design - Apple Developer developer.apple.com extension(익스텐션) extension https://docs.swift.org/swift-book/LanguageGuide/Extensions.html Extensions — The Swift Prog..
stored property와 computed property computed property(계산 프로퍼티)는 property가 설정되거나 검색되는 시점에서 계산 또는 파생된 값 계산 프로퍼티 내에는 - 값을 리턴하는 게터(getter) 메서드 - 값을 대입하는 세터(setter) 메서드 class Man{ var age : Int = 1 // stored property var weight : Double = 3.5 // stored property var manAge : Int{ //메서드 같지만 computed property임 get{ return age-1 } } func display(){ print("나이=\(age), 몸무게=\(weight)") } init(age: Int, weight..
클래스 vs. 객체 vs. 인스턴스 객체지향 용어 비교 객체 인스턴스 인스턴스(instance) 실제로 메모리에 할당된 객체(object) 소프트웨어 애플리케이션을 개발하는 데 사용되는, 쉽게 사용할 수 있으며 재사용할 수 있는 기능을 가진 모듈 객체의 구성 - 데이터 변수(data variable) or 속성(property) - 함수 or 메서드(method) 클래스란? 청사진이나 설계도가 건물이 완성된 후의 모습을 나타내고 있는 것처럼 클래스(class)는 객체가 생성되었을 때 어떠한 모습을 보일 것인지를 정의 - int x; - Student han; //C++ - 클래스 인스턴스; Swift 클래스 선언하기 클래스의 기본 구조는 다음과 같다. class 새로운 클래스 이름 : 부모 클래스 { /..
first class object : (1)함수를 변수에 저장 가능 Swift는 함수를 데이터 타입처럼 처리할 수 있음 다음과 같이 함수를 상수 또는 변수에 할당하는 것이 가능 func inchesToFeet (inches: Float) -> Float { return inches * 0.0833333 } let toFeet = inchesToFeet //함수를 자료형처럼 사용 함수를 호출하려면 원래의 함수 이름 대신에 상수 이름을 이용하여 호출 가능 print(inchesToFeet(inches:10)) print(toFeet(10)) //주의 : 매개변수명(inches:) 안씀 first class object : (2) 함수를 매개변수로 사용 func inchesToFeet (inches: Floa..
함수 특정 작업을 수행하는 코드 블록 수행하기 위하여 데이터가 제공될 수 있으며, 함수를 호출한 코드에 작업한 결과를 반환할 수도 있음 매개변수(parameter,인자)와 인수(argument)는 차이점이 있음 함수 정의부의 값을 매개변수, 호출시의 값은 아규먼트라고 부름 #include void Fun( int Param ) // parameter(매개변수, 인자), 형식 매개변수(formal parameter) { printf("%d",Param); } int main() { Fun( 10 ); // 10은 argument(인수), 실 매개변수(actual parameter) return 0; } 매개변수 인자 리턴값 메서드(method) 특정 클래스, 구조체, 열거형 내의 함수 함수를 스위프트 클래..