Any, AnyObject
·
Swift
AnyObjectAnyObject는 어떠한 클래스 타입의 인스턴스도 표현할 수 있는 것이다.클래스 타입만 가능해요. 클래스 타입만. 상속 관계가 아니라도 타입 캐스팅 가능한 타입이고어떤 클래스의 객체도 저장이 가능하고가장 추상화된 최상위 클래스(Obj-C의 NSObject)클래스만 허용하며 구조체나 열거형은 허용하지 않는다. AnyAny는 어떤 것도 가능함. 인스턴스도 가능하고 함수까지도 가능하다.클래스, 구조체, 열거형, 함수타입도 다 Any형으로 캐스팅 할 수 있는아주 범용 타입이라고 생각을 하시면 된다.
형변환
·
Swift
형변환1. as는 Upcasting상속 관계가 있는 클래스들끼리만 타입 캐스팅이 가능하다.자식을 부모로 캐스팅하는 것은 문제가 없음. as 연산자를 이용한 타입 변환(type casting)자식 인스턴스 as 부모 클래스 (upcasting 안전한 캐스팅, 자식이 추상화됨)업캐스팅은 객체를 부모 클래스의 객체로 형 변환형 변환은 성공할 것이기 때문에 보장된 변환이다(guaranteed conversion)UIBUtton은 UIControl의 자식 클래스이므로 안전하게 형 변환let myButton: UIButton = UIButton()let myControl = myButton as UIControl (자식 인스턴스 as 부모 클래스)자식 인스턴스인 myButton을 부모 클래스형으로 형 변환자식은 부..
옵셔널 (2)
·
Swift
암묵적인 언래핑(implicitly unwrapped)옵셔널이 항상 유효한 값을 가질 경우 옵셔널이 암묵적인 언래핑(implicitly unwrapped)이 되도록 선언할 수 있음. 우리가 직접 만들 때는 이렇게 할 일은 없지만클래스의 아웃렛 변수 초기화에서 많이 사용한다(xcode자동 생성되는 코드) 암묵적인 언래핑으로 옵셔널을 선언하기 위해서는 물음표 대신에 느낌표를 사용하면 됨.var x: Int!느낌표로 옵셔널을 선언하게 되면 강제 언래핑이나 옵셔널 바인딩하지 않고도 사용할 수 있는 장점이 있다. 공식문서에는 아래처럼 설명이 되어있는데암묵적으로 래핑되지 않은 옵셔널은 필요할 경우 옵셔널에 강제로 래핑을 해제할 수 있는 권한을 부여하는 것으로 생각할 수 있습니다. 암묵적으로 래핑되지 않은 옵셔널 값..
옵셔널 (1)
·
Swift
Optional값을 반환할 때 오류가 발생할 가능성이 있는 값은 옵셔널 타입이라는 객체로 감싸서 반환한다.어떤 값이 있을 수도 있고 없을 수도 있는 값에 쓰이는 타입임. 예를 들어서  Int("100")은 Optional(100)이라는 값을 리턴한다.근데 Int("Hi")는 정수 값을 반환할 수 없기 때문에 아무 것도 반환할 수 없다는 의미의nil을 반환하게 됨. 이렇게 값이 들어갈 수도 있고 들어가지 않을 수도 있는데 이런 경우에 일반 변수가 아니고 옵셔널 타입의 변수로선언하자는 것이다. 따라서 옵셔널 타입은 변수 또는 상수에 아무런 값이 할당되지 않은 상황을 안전하게 처리하기 위한 방법을 제공한다. 그래서 옵셔널 타입으로 선언을 어떻게 하느냐. 간단하게 타입 선언부 뒤에 ?를 붙여주면 된다.var i..
[03] 1주차: 버튼과 텍스트를 사용하여 UI 실습
·
Swift
🎯 실습 목표 (1주차 문법만 사용) • Text와 Button을 사용해 UI를 구성할 수 있다. • VStack을 사용하여 뷰를 정렬할 수 있다.🛠️ 앱 구성 요소 1. Text: 기본으로 "버튼을 눌러보세요!" 라는 문구가 표시됨. 2. Button: 클릭하면 텍스트 출력.3. VStack을 사용하여 UI를 정렬함.📌 앱 동작 방식 1. 앱을 실행하면 "버튼을 눌러보세요!" 라는 텍스트가 표시됨. 2. 버튼을 누르면 콘솔에 "안녕하세요!" 출력   내 코드import SwiftUIstruct ContentView: View { var message = "버튼을 눌러보세요!" var body: some View { VStack() { ..
[02] 1주차: 간단한 화면 구성
·
Swift
SiwftUI를 사용해서 UIView를 구성해보자.이번 글에서는 SwiftUI의 기본적인 뷰 구성과 Stack을 활용한 레이아웃을 만든다. 🎨 오늘 배울 내용 1. SwiftUI 기본 구조 2. 텍스트(Text)와 이미지(Image) 다루기 3. 버튼(Button)과 액션 구현 4. Stack을 활용한 레이아웃 구성   • VStack, HStack, ZStack 5. Spacer와 Divider 사용법  🚦 1. SwiftUI 기본 구조 SwiftUI는 선언형(Declarative) UI 프레임워크.뷰의 상태(State)에 따라 UI를 자동으로 업데이트한다.import SwiftUIstruct ContentView: View { var body: some View { Text("H..