iOS
-
[Swift] 접근 제어iOS/Swift 2022. 8. 5. 14:10
💡 객체 지향 프로그래밍 데이터를 추상화시켜 상태와 동작을 가지는 하나의 객체로 묶어서 문제를 해결하는 프로그래밍 방법이다. * 추상화: 공통적인 속성이나 기능을 묶어 이름을 붙이는 것 (클래스를 정의하는 일) 절차적 프로그래밍은 알고리즘을 중요시 하지만, 객체 지향적 프로그래밍은 데이터를 중요시한다. 따라서 문제에서 필요한 데이터를 먼저 설계하는데, 데이터를 나타낼 때 사용하는 도구가 클래스이다. 클래스에는 데이터와 함수(알고리즘)가 포함되기 때문에 데이터와 알고리즘이 분리되어 있지 않다는 점이 큰 특징이다. 객체 지향 프로그래밍의 장점: - 소프트웨어 개발의 유용성 - 유지 및 보수의 효율성 캡슐화 데이터와 알고리즘을 하나의 단위(클래스)로 묶는 것으로, 캡슐화를 총해 데이터에 대한 불필요한 접근을 ..
-
[Swift] Dice game! 주사위를 굴려보세요iOS/project 2022. 8. 4. 22:21
1. storyboard에서 objects들을 이용해서 좌측 화면과 같이 디자인한다 2. 주사위 요소를 클릭한 뒤 컨트롤 + 코드창으로 드래그하면 코드가 자동으로 생성된다 @IBOutlet weak var diceImageView1: UIImageView! @IBOutlet weak var diceImageView2: UIImageView! //App이 처음 실행되서 로드된 뒤 화면 설정 override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. //Who.What = Value //App이 실행될 때 주사위가 6이 된다. diceImageView1.image = UIImage(nam..
-
[Swift] 인스턴스(instance)iOS/Swift 2022. 8. 3. 23:45
💡 학습할 내용 기본값 할당 이니셜라이저 옵셔널 실패 가능한 이니셜라이저 디이니셜라이저 인스턴스가 생성이 되기 전 프로퍼티 값들이 초기화가 되어있어야 합니다. 만약 초기값이 없는 클래스를 선언하면 어떻게 될까요? class StudentB { var name: String var age: Int var major: String class StudentB에 초기값이 없다는 컴파일 오류가 발생하게 됩니다. 💡 프로퍼티 값을 초기화하는 방법에 대해 알아봅시다. 1. 기본값 할당 모든 저장 프로퍼티에 기본값을 할당하는 방법입니다. 따로 이니셜라이저를 통해 초기값을 할당하지 않아도 됩니다. 예시) class StudentA { var name: String = " " //이름 var age: Int = 0 //나..
-
[Swift] 프로퍼티(property)iOS/Swift 2022. 8. 2. 21:53
💡 프로퍼티: 클래스, 구조체, 열거형 등에 관련된 값 프로퍼티의 종류 저장 프로퍼티 연산 프로퍼티 타입 프로퍼티 인스턴스의 변수 또는 상수 특정 연산을 실행한 결과값 특정 타입에 사용되는 프로퍼티 + 프로퍼티 감시자 저장 프로퍼티 - 클래스 또는 구조체의 인스턴스와 연관된 값을 저장한다 - 기본값과 초기값 지정O 💡 클래스의 경우 초기값을 지정해주지 않으면 따로 정의해줘야 한다 💡 옵셔널 저장 프로퍼티를 통해 값을 초기값을 넣어주지 않고 나중에 값이 있을 경우 할당할 수도 있다 // ============ ============ // 구조체 struct CoordinatePoint { // 저장 프로퍼티 var x: Int var y: Int } // 인스턴스 생성 let yeon..
-
[Swift] 구조체(struct)와 클래스(class)iOS/Swift 2022. 8. 2. 20:44
구조체와 클래스의 사용 목적 - 데이터를 용도에 맞게 묶어서 표현하고자 할 때 - 새로운 사용자 정의 데이터 타입을 만들어 주는 것 구조체 클래스 값 타입 참조 타입 인스턴스를 let으로 선언 시 내부 프로퍼티 값 변경X 인스턴스를 let으로 선언 시 내부 프로퍼티 값 변경O 상속 불가 상속 가능 타입 캐스팅 불가 타입 캐스팅 가능 디이니셜라이저X 디이니셜라이저O (메모리 소멸) 기본적으로 저장 프로퍼티를 매개변수로 갖는 이니셜라이저O 프로퍼티 기본값을 지정하지 않으면 이니셜라이저 따로 정의 / 사용자 정의 이니셜라이저 호출 구조체 예시 // 구조체 정의 struct BasicInformation { var name: String var age: Int } // 구조체 인스턴스 생성 및 사용 var ye..
-
[Swift] 옵셔널(Optional)iOS/Swift 2022. 7. 26. 14:37
옵셔널 - 값이 있을 수도 있고, 없을 수도 있다 - 옵셔널은 nil의 가능성을 문서화하지 않아도 명시적으로 표현할 수 있기 때문에 사용한다 let optionalConstant: Int? = nil let someConstant: Int = nil 컴파일 오류! 'nil' cannot initialize specified type 'Int' 옵셔널 선언 방법 let optionalValue: Optional = nil let optionalValue2: Int? = nil 옵셔널(?) 암시적 추출 옵셔널(!) nil 할당 가능 기존 변수처럼 사용 불가 기존 변수처럼 사용 가능(ex. 연산...) 옵셔널 값 추출 방법 1. 옵셔널 바인딩(Optional Binding) 2. 강제 추출(Force Unwr..