분류 전체보기73 Swift) ch10.프로퍼티와 메서드 프로퍼티 - 클래스, 구조체 또는 열거형 등에 관련된 값 메서드 - 특정 타입에 관련된 함수 프로퍼티 프로퍼티는 크게 저장 프로퍼티, 연산 프로퍼티 그리고 타입 프로퍼티로 나눌 수 있다. 저장 프로퍼티 (Stored Properties) 클래스 또는 구조체의 인스턴스와 연관된 값을 저장하는 가장 단순한 개념의 프로퍼티 var 키워드를 사용하면 변수 저장 프로퍼티, let 키워드를 사용하면 상수 저장 프로퍼티가 된다. // 신체 정보 struct BodyInfo { var height: Double // 저장 프로퍼티 var weight: Double // 저장 프로퍼티 } // 구조체에는 기본적으로 저장 프로퍼티를 매개변수로 갖는 이니셜라이저가 있다! let hoonsBodyInfo: BodyInfo =.. Swift 2022. 7. 4. Swift) ch8.옵셔널 Swift는 안전성(safe)을 굉장히 강조하는 언어이다. Swift 공식 문서 의 첫 파트인 소개 부분에서도 안전에 대한 이야기가 옵셔널이라는 것과 함께 나온다. 도대체 옵셔널이 뭘까? 그리고 왜 Swift는 옵셔널이라는 문법을 사용하는 것일까? 옵셔널(Optional)이란? 옵셔널은 단어 뜻 그대로 '선택적인', 즉 값이 '있을 수도, 없을 수도 있음'을 나타내는 표현이다. A라는 자동차가 있다고 해보자. 자동차 A에 대해 선루프 옵션을 선택한 차는 선루프가 있고, 선택하지 않은 차는 선루프가 없다. 도로에 다니는 자동차 A 선루프가 있는 자동차 A 선루프가 없는 자동차 A 어떤 자동차 모델이 선루프 옵션이 있다면 도로에 다니는 이 자동차들은 선루프가 '있을 수도, 없을 수도' 있다는 것이다. 다시 .. Swift 2022. 6. 29. Swift) ch7.함수 "하나의 프로그램은 하나의 큰 함수다"라는 말이 있듯이 함수는 프로그램을 이루는 주된 요소 중 하나이다. 특히 Swift에서 함수는 일급 객체이기 때문에 하나의 값으로도 사용할 수 있다. Swift에서 함수는 다른 언어보다 훨씬 다양한 모습으로 존재하는 것을 미루어 보았을 때 아주 중요한 파트로 볼 수 있다. 함수? 메서드? 함수와 메서드는 기본적으로 같다. But 상황이나 위치에 따라 다른 용어로 부르는 것뿐이다! 메서드 구조체, 클래스, 열거형 등 특정 타입에 연관되어 사용하는 함수 함수 모듈 전체에서 전역적으로 사용할 수 있는 함수 즉, 함수가 위치하거나 사용되는 범위 등에 따라 호칭이 달라질 뿐, 함수라는 것 자체에는 변함이 없다!! 함수의 정의와 호출 기본적인 함수의 정의와 호출 func 함수이.. Swift 2022. 6. 27. Swift) ch6.흐름 제어 6.1 조건문 조건문은 어떠한 값이 특정 조건에 해당할 때만 선택적으로 코드를 실행시켜준다. 대표적으로 if-else 문과 switch-case 문이 있다. 6.1.1 if 구문 값이 if 조건에 맞아 떨어지면 if의 코드가 실행된다. 만약 else if 문이 있다면 if 후에 순서대로 조건을 비교한다. 끝까지 맞는 조건이 없다면 else 구문이 실행된다. else if 와 else 구문은 생략할 수 있다. let first: Int = 5 let second: Int = 5 var biggerValue: Int = 0 if first > second { biggerValue = first } else if first == secocnd { biggerValue = first } else if (firs.. Swift 2022. 6. 24. Swift) ch5.연산자 이번 포스팅에서는 제가 생각하기에 기본적인 연산자들에 관한 내용만 기재되어 있습니다. 비트 연산과 오버플로 , 사용자 정의 연산자 등과 관련된 내용은 포함되어있지 않습니다. 5.1 연산자의 종류 💡할당 연산자 A = B 할당(대입) 연산자: A에 B의 값을 할당한다. 서로 다른 데이터 타입이라면 오류가 발생하니 주의하자. 💡산술 연산자 A + B 더하기 연산자 A - B 빼기 연산자 A * B 곱하기 연산자 A / B 나누기 연산자 A % B 나머지 연산자: A를 B로 나눈 나머지를 반환 💡비교 연산자 A == B A와 B가 같은 값인지 비교 후 Bool 값을 반환 A >= B A가 B보다 크거나 같은 값인지 비교 후 Bool 값을 반환 A B A가 B보다 큰 값인지 비교 후 Bool 값을 반환 A < .. Swift 2022. 6. 22. Swift) ch4.데이터 타입 고급 ch4.데이터 타입 고급 4.2 타입 별칭 스위프트에서 기본으로 제공하는 데이터 타입이든, 사용자가 임의로 만든 데이터 타입이든 이미 존재하는 데이터 타입에 임의로 다른 이름을 부여할 수 있다. 기존에 사용하던 데이터 타입의 이름과 프로그래머가 만들어준 이름 모두 사용할 수 있다. typealias 키워드를 사용한다. typealias MyInt = Int let age: MyInt = 100 var year: Int = 2000 // MyInt는 Int로 같은 타입이기 때문에 밑 예시가 가능하다. year = age print(year) // 100 4.3 튜플 타입의 이름이 따로 지정되어 있지 않은, 프로그래머 마음대로 만드는 타입으로 '지정된 데이터의 묶음' 이라고도 표현함. 튜플에 포함될 데이터의.. Swift 2022. 6. 19. Swift) ch3.스위프트 처음 시작하기 기본 명명 규칙 Swift는 대소문자를 구별한다. ex) Var - var, Let - let 를 다르게 인식한다. 💡변수, 상수, 함수, 메서드, 타입 등의 이름으로 사용할 수 없는 경우 Swift에서 미리 정한 예약어 or 키워드 해당 코드 범위 내에서 미리 사용되는 기존 이름과 동일한 이름 연산자로 사용될 수 있는 기호 ex) +, -, *, / 숫자로 시작하는 이름 공백이 포함된 이름 💡카멜케이스 (Camel Case) 함수, 메서드, 인스턴스 이름은 첫 글자를 소문자로 사용하는 소문자 카멜케이스를 사용 ex) isNewInput, getNumber 클래스, 구조체, 익스텐션, 프로토콜, 열거형 이름은 타입의 이름이기 때문에 첫 글자를 대문자로 사용하는 대문자 카멜케이스를 사용 ex) Calcul.. Swift 2022. 6. 15. Swift) 객체지향 프로그래밍(OOP) 내가 공부하고 있는 Swift는 여러 가지 프로그래밍 패러다임을 차용한 다중 패러다임 프로그래밍 언어이다. 크게 보면 명령형, 객체지향, 그래밍, 함수형, 프로토콜 지향 프로그래밍 패러다임을 차용했고 정확하게는! 함수형 프로그래밍 패러다임과 프로토콜 지향 프로그래밍 패러다임을 지향한다고 한다... 사실 하나만 제대로 학습해도 좋은 성과라고 생각하기에 처음 듣는 단어들이 나올지라도 당황하지 말자..! 어쨌든 결과적으로 Swift에서 가장 강조하는 부분은 함수형 프로그래밍 패러다임과 프로토콜 지향 프로그래밍 패러다임이다. 그럼 나는 왜 Swift를 공부하며 객체 지향 프로그램을 알아야 할까? -> 기존의 C 언어는 명령형 프로그래밍 패러다임을 차용했으며, C++, JAVA 등의 언어는 명령형, 객체지향 프로.. Swift 2022. 6. 9. iOS) 계산기 앱(3) 이번 포스팅에서는 계산기 앱에 있는 연산 기능을 간단하게 구현해 볼 예정이다. CalculatorLogic Switch문 수정 전 import UIKit struct CalculatorLogic { // private을 통해 다른 파일에서의 접근을 막음 private var number: Double? // 구조체이기 때문에 변수에 새로운 값을 넣을 시 mutating 키워드 필요 mutating func setNumber(_ number: Double) { self.number = number } func calculate(symbol: String, uiBtn: UIButton) -> Double? { if let n = number { switch symbol { case "+/-": return .. iOS 2022. 5. 26. Swift) 백준 2609번: 최대공약수와 최소공배수 https://www.acmicpc.net/problem/2609 2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.acmicpc.net 최대공약수 먼저 공약수란 두 수 이상의 여러 수의 공통된 약수를 의미한다. 최대공약수는 두 수 이상의 여러 수의 공약수 중 최대인 수를 가리키는데 즉, 주어진 두 수로 나누어 떨어지는 수 중 가장 큰 수이다. 예를 들어 30과 15의 최대공약수는 15가 된다. 두수로 동시에 나누어 떨어지는 걸 for문을 이용하기로 했고 아래는 설계 과정이다. 1부터 두 수중 큰수까지 for문을 통해 순회한다. 만약 두 수로 동시에 나누어 떨어지면 선언해놓은 변수에 넣어준 후 다시.. Algorithm 2022. 5. 26. Swift) 백준 1929번: 소수 구하기 https://www.acmicpc.net/problem/1929 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net 바로 전 문제인 소수 찾기와 유사하다. 대신 이문제는 범위가 주어지고 그 범위 안에서 소수인 수를 찾아서 출력한다는 점이 다르다. 처음에는 소수 찾기에서 하나씩 나눠서 판별한 for문을 다시 쓸까 생각을 했지만 우선 그때 생각한 것처럼 더 나은 방법이 있다고 생각해 다른 방식으로 풀고 싶었고 범위는 1,000,000까지 주어지기 때문에 주어진 범위를 돌아야 할 for문까지 합치면 너무 복잡해질 것 같아서 소수를 판별하는 에라토스.. Algorithm 2022. 5. 24. iOS) 계산기 앱(2) - MVC패턴 적용 현재 ViewController에서 모든 기능을 구현하고 있다. 지금은 간단한 코드로만 구성되어 있지만 계산 기능을 하나씩 넣기시작하면 오직 한 파일로만 관리를 하는 것은 이상적이지 않다. 그래서 MVC패턴을 적용하기로 했다! 요즘엔 MVVM패턴을 많이 사용한다 해서 너무 궁금하지만 우선 MVC패턴이라도 제대로 구성해보자는 생각을 가지고 있다 ㅎㅎ Model, View, Controller 세개의 그룹을 만들고 Controller에는 기존에 사용한 ViewController 파일을 넣어주고 Model에 계산기능을 담당하는 새로운 파일을 만들어주었다. CalculatorLogic MVC패턴 적용 전 연산버튼 코드(CalculatorViewController) @IBAction func calcButtonP.. iOS 2022. 5. 23. 이전 1 2 3 4 5 6 7 다음