iOS 20

swift - Array에서 String으로 바꾸기

swift5 기준, array에서 string으로 바꾸고자 할 때 사용할 수 있는 방법들 기본적으로 arrayName.joined(separator: "")의 코드를 사용하는데 각각의 상황에 따라 조금씩 다르다. Turning an array of Characters into a String with no separator: let characterArray: [Character] = ["J", "o", "h", "n"] let string = String(characterArray) print(string) // prints "John" Turning an array of Strings into a String with no separator: let stringArray = ["Bob", "Dan",..

iOS/swift 2021.08.30

swift - Array & Dictionary (basic)

array와 관련된 내용 정리 기본적으로 선언하는 방법은 아래와 같다. var myArray:[String] = ["Dog", "Cat", "Bird"] 또는 자료형을 생략해도 된다. var myArray = ["Dog","Cat","Bird"] EMPTY ARRAY 만드는 방법 var myArray:[String] = [] 또는 var myArray = [String]() 와 같이 코드를 입력해주면 된다. ADD ITEMS myArray.insert("Fish", at: 0) --> 원하는 인덱스에 삽입 myArray += ["Fish", "Frog"] myArray.append("Bear") --> 인덱스 끝에 추가됨 REMOVE ITEMS myArray.remove(at: 2) --> 해당 인덱스의..

iOS/swift 2021.08.26

swift - Optional (basic)

Optional : optional data type allows "nil" to be a value for the variable or constant. 먼저 네 가지 변수의 선언을 비교해볼 것이다. var a:Int = 1 var b:Int? = nil var c:Int? *** 이처럼 값을 따로 할당하지 않는 경우, 기본적으로 nil값이 할당됨 // c can store an int or nil, but it is wrapped. var d:Int! // d can store an int or nil, but it is already unwrapped. 위와 같이 data type 뒤에 ?를 붙여주면 optional data type이 되며, optional data type인 경우 변수나 상수의 ..

iOS/swift 2021.08.25

swift - Split vs Components (문자열을 특정 separator로 나눠서 배열에 리턴)

먼저 관련 공식문서의 주소는 아래와 같다. https://developer.apple.com/documentation/dispatch/dispatchdata/1780541-split/ Split 공식문서 https://developer.apple.com/documentation/foundation/nsstring/1410120-components/ Components 공식문서 components(separatedBy:) 1가지 매개변수(parameter)가 들어갈 수 있다. separatedBy: 나누는 단위가 되는 요소 아래에 있는 Split 부분에서 자세히 정리할 것이다. components function을 사용하기 위해서는 Foundation이라는 프레임워크가 필요하기 때문에, import Fou..

iOS/swift 2021.08.12

swift - Struct vs Class

swift에서 struct와 class의 차이점에 대해 정리한다. 가장 큰 차이점은 superclass로부터 상속받을 수 있다는 점이 있지만, 그것과는 별개로 superclass로부터 상속받지 않는 기본 class와 struct의 차이점을 정리할 것이다. // ##### Enemy.swift ##### struct Enemy { // ##### 1 ###### var health : Int var attackStrength : Int // structs are immutable --> mutating func 을 사용해야 property의 값을 바꿀 수 있다. mutating func takeDamage(amount: Int) { health -= amount } func move() { print("M..

iOS/swift 2021.07.22

Swift - Class & Inheritance

클래스는 구조체와 마찬가지로 청사진을 정의하는 하나의 방법이다. property와 method들을 설계할 수 있도록 하고, init()을 통해 어플을 실행했을 때 클래스를 실제 객체로 초기화할 수 있다. 클래스로부터 어떻게 객체를 만들 것인지, 그리고 상속(inheritance), subclass, superclass와 같은 객체 지향 프로그래밍의 핵심 개념 중 일부는 메소드를 재정의한다는 것이 의미하는 것, 슈퍼클래스에서 메소드를 호출한다는 것이 의미하는 것이 있는데, 그것들에 대해 다룬다. xcode에서 new project를 만들 것이다. 전체 어플을 만들지는 않지만, 여러 개의 swift file을 가질 수 있는 프로젝트를 만들 것이기 때문에 playground를 만들어서 연습하는 대신 macOS..

iOS/swift 2021.07.19

swift - immutability (구조체 안에서)

immutable -- let과 같이 불변 mutable -- var과 같이 가변적 struct Town { let name: String var citizens: [String] var resources: [String : Int] init(citizens: [String], name: String, resources: [String : Int]) { self.citizens = citizens self.name = name.uppercased() self.resources = resources } func harvestRice() { resources["Rice"] = 100 // 위의 코드는 self.resources["Rice"] = 100과 동일한 코드이다. } } 위의 예시를 살펴보면, str..

iOS/swift 2021.07.01

swift - Functions with Output

function에는 기본적으로 1. 아무런 input이 들어가지 않는 타입과, 2. 특정 input을 받는 타입, 3. 그리고 output이 있는 타입이 있다. 각각의 생성과 호출을 예시로 살펴보면 다음과 같다. 1. func greeting1() { print("Hello") } greeting1() 2. func greeting2(name : String) { print("Hello \(name)") } greeting2(name : "Jack") 3. 생성에는 func, function name, input type과 더불어 return arrow (->)와 return type도 필요하다. 함수의 코드블럭 내에 return keyword와 return value 또한 필요하다. 함수를 호출할 때도..

iOS/swift 2021.06.29

MVC Design pattern

Design pattern에는 여러가지가 있다. Object Pool, Facade, MVP, Iterator, Singleton, MVC, Memento, MVVM, VIPER 등.. 사용하려는 목적에 따라 디자인 패턴을 정해서 사용하는데, 그 중 모바일 어플(특히나 애플)을 만들 때 반드시 알아야 하는 디자인 패턴 중의 하나인 MVC design pattern에 대해 정리한다. MVC (Model-View-Controller) 프로젝트를 3개의 메인요소로 나눈다 - model / view / controller 그리고 각 요소들이 함께 작동하도록 한다. Model - 모든 데이터를 처리하는 코드와 로직 부분 View - UI로 이동하고 user interaction을 처리하는 코드 Controller..

iOS/swift 2021.06.28

Swift - structure (구조체)

Structure (구조체) : string, int, float, double, boolean, array, dictionary와 같이 미리 빌드된 자료형 외에 custom 자료형을 만들 수 있게 해준다. 미리 빌드된 다른 자료형과 마찬가지로, structure의 이름도 대문자로 시작해야 한다. - Town 위의 그림과 같이 변수를 하나 만들어서 보관한 후에, 사용하거나 각종 속성에 접근하여 여러가지 작업을 할 수 있게 되었다. myTown.citizens.append("Gaga") -- append로 새로운 항목을 추가할 수도 있고, myTown.citizens.count -- count로 항목의 갯수를 확인하거나 사용할 수도 있다. 또한, 구조체 내에 함수를 만들 수 있는데 이 함수를 method ..

iOS/swift 2021.06.23