본문 바로가기

프로그래밍/Swift

(5)
제네릭(Generics)과 애니 타입(Any Type) 스위프트의 공식 문서에서 제네릭과 애니 타입을 각각 다음과 같이 정의하고 있다. "Generics"(https://docs.swift.org/swift-book/LanguageGuide/Generics.html) Generic code enables you to write flexible, reusable functions and types that can work with any type, subject to requirements that you define. You can write code that avoids duplication and expresses its intent in a clear, abstracted manner. 제네릭 코드는 특정 타입으로 동작하게 함으로써, 유연하고 재사용성이..
접근 수준 활용하여 프레임워크 만들기 연결 리스트에 관한 프레임워크를 만들다가, 서로 연결된 데이터의 수를 반환하는 좋은 방법이 떠올랐다. 연결 리스트 관련 포스팅: https://taeminator1.tistory.com/36 연결 리스트 관련 소스 코드: https://github.com/Taeminator1/Data-Structure 프레임워크 관련 포스팅: https://taeminator1.tistory.com/38 해당 변수의 이름은 Array에서와 마찬가지로 count로 정해줬다. count는 인스턴스의 첫 번째 노드를 시작으로 연결된 노드의 총개수를 반환하는 변수이다. 이러한 count를 구현하기 위해 처음에는 다음과 같이 구현하였다. public class LinkedList { var first: Node? var last..
[Swift] 유니코드와 숫자 간의 변환 프로그래밍을 하다 보면 데이터 타입 간의 다양한 변환(conversion)이 필요하다. 데이터 변환 중에서 문자를 숫자로 변환하는 것이 종종 필요할 때가 있다. 이 번 시간에는 해당 변환을 하는 방법과 주의 사항에 대한 포스팅이다. 문자를 숫자로 변환하는 방법 중에서 String 타입의 유니코드를 Int 타입의 숫자로 변환하는 방법에 대해 살펴보자. (유니 코드에 대한 설명은 다음 포스팅을 참고하길 바란다. https://taeminator1.tistory.com/50) 유니코드 "A"와 그에 해당하는 숫자 65를 예시로 해서 변환 방법을 살펴보겠다. 먼저 유니코드(String)를 숫자(Int)로 변환하는 방법이다. // 유니코드(String)에 해당하는 Int 값으로 반환 let str: String ..
Swift에서 Framework 생성 및 사용 이전에 만든 클래스를 현재 진행 중인 프로젝트에서 사용하고 싶은 경우가 종종 있다. 이럴 때 해당 프로젝트에 원하는 클래스를 복사해서 사용할 수도 있지만, 매번 이렇게 복사는 것이 여간 귀찮은 일이 아니다. 그래서 지난 포스팅(https://taeminator1.tistory.com/37)에서 만든 Queue 클래스를 Framework로 생성하여 다른 프로젝트에서 사용하는 방법을 알아보고자 한다. 지난 포스팅에서 만든 Queue 클래스를 Framework로 생성하여 다른 프로젝트에서 사용하는 방법을 알아보자. 먼저 Xcode를 실행하고 "Create a new Xcode project"를 눌러 프로젝트를 생성하자. 자신이 원하는 플랫폼을 선택하고(지금은 macOS를 선택했다), "Framework & L..
저장 속성(Stored Properties), 계산 속성(Computed Properties) Swift에서 속성을 선언하는 방법은 크게 저장과 계산 속성으로 구분 지을 수 있다. 가장 쉽고 간단하게 선언할 수 있는 저장 속성(Stored Properties)은 변수나 상수에 값을 저장할 때 사용한다. 다른 언어에서 제공하는 기본적인 속성과 크게 다르지 않아 가장 익숙한 속성이다. Swift에서 저장 속성을 선언하는 방법은 다음과 같다. var [변수 이름]: 자료형 ex) var storedNum1: Int let [상수 이름]: 자료형 ex) var storedNum2: Int 변수는 말 그대로 변하는 값을 저장하기 위한 속성이고, 상수는 변하지 않는 값을 저장하기 위한 속성이다. 이 둘은 서로 구분해서 사용하는 것을 권고하는데 이유는 다음과 같다. 첫 번째, "안전한 프로그래밍을 위해" 상수..