swift & iOS/swift 49

[Swift] 정수 나누기 (9 나누기 10을 했는데 0이 나오다)

자바스크립트를 하던 나는 0.9를 얻기 위해 당연하게도 9 / 10 을 했다. 자바스크립트라면 분명 0.9 였을텐데 스위프트에서는 0이 나왔다. Int 나누기 Int는 Int 라는 것이다. 아 그러면 9 / 10을 Float로 감싸면 되겠다^^ 싶었지만 여전히 0이 나왔다. 9 / 10이 0이었는데 0을 Float로 감싸봤자 0.0이 나오는 것이다. 그래서 9 / 10 으로 0.9를 얻으려면 각 숫자를 Float로 만들고 나서 나눠야 한다. print(Float(9) / Float(10)) // 0.9 // 아니면 애초에 Float 변수들을 선언하고 그걸 사용해도 된다 let a: Float = 9 let b: Float = 10 print(a / b) 만약 내가 Int를 얻고 싶으면 재료로 써먹는 숫자..

swift & iOS/swift 2022.01.14

[swift] 타입 캐스팅 (형 변환)

https://youtu.be/V6-WmAh4Y1E?list=PLJqaIeuL7nuFbWKMhG8-xLzF1T7gIPr8Z 요새 이 채널에서 swift, ios 개발 영상을 열심히 보고 있다. 매번 swift 로 올리는 글도 이 채널의 영상들을 보고 정리하는 것이다. 대학교 강의인 것 같은데 요새는 유튜브에서 여러 강의들이 영상으로 올라오니 무엇이든 배우기 좋은 것 같다. 형 변환(casting)은 as 라는 키워드를 사용한다. 형 변환에는 upcasting, downcasting이 있는데 위를 부모 클래스 아래를 자식 클래스 라고 생각하면 upcasting, downcasting이 무엇인지 쉽게 추측할 수 있다. upcasting은 어떤 객체를 부모 클래스의 객체로 형 변환 하는 것이고 (부모 클래스

swift & iOS/swift 2022.01.10

[swift] Any, AnyObject

Any 모든 인스턴스를 다 표현 클래스, 구조체, 열거형, 함수 모두 가능 let arr: [Any] = [1, 2, "ha", true] AnyObject 클래스의 인스턴스만 표현함 (구조체 x , 열거형 x) protocol 중에 AnyObject 인 경우가 있는데 클래스에서만 채택되도록 하기 위해서임 // 아래처럼 작성할 수 없음. Int, String, Boolean 모두 구조체이기 때문 let arr: [AnyObject] = [1, 2, "ha", true] 포함하는 정도로 보자면, Any > AnyObject > NSObject

swift & iOS/swift 2022.01.10

[swift] 옵셔널 optional 간단 정리

참고: https://www.youtube.com/watch?v=V6-WmAh4Y1E&list=PLJqaIeuL7nuFbWKMhG8-xLzF1T7gIPr8Z&index=26 옵셔널(optional)은 변수/상수에 아무런 값이 할당되지 않는 상황을 안전하게 처리하기 위한 방법이다. 그리고 옵셔널 타입이어야 nil을 할당할 수 있다. var a = nil 이렇게 작성하면 에디터에 에러가 나타난다. a가 옵셔널 타입임을 명시해준 후에야 nil을 할당할 수 있다. var a : Int? a라는 옵셔널 Int 형의 변수를 선언한 것이다. 이 변수에는 Int 형의 값을 할당할 수도 있고 값이 없을 수도 있다. (nil) 만약 a에 값을 할당하면 그 값은 옵셔널로 감싸지게 된다. a = 10 print(a) // O..

swift & iOS/swift 2022.01.08

[swift] 튜플(tuple) 생성과 값 접근하는 방법

튜플: 여러 값을 하나의 객체에 일시적으로 묶는 방법 * 다양한 타입을 한 튜플에 담을 수 있다. let myTuple = (10, 21.12, “hi”) * 튜플의 각 값에 접근하는 방법은 . 을 이용한다 let str = myTuple.2 // "hi" * 위처럼 각 값에 하나씩 접근할 수도 있지만 아래처럼 튜플의 모든 값을 한꺼번에 변수에 할당할 수도 있다. (자바스크립트의 구조분해할당 같은 느낌) let (age, width, greeting) = myTuple let (age, _, greeting) = myTuple // _ 언더스코어는 ‘무시한다’ 라는 뜻 * 튜플 생성할 때 각 값에 이름을 부여할 수 있고 그 이름들은 값에 접근할 때 사용할 수 있다. let testTuple = (heig..

swift & iOS/swift 2022.01.08

[Swift] 함수 - 파라미터 간단 정리

https://docs.swift.org/swift-book/LanguageGuide/Functions.html swift에서 함수에서 파라미터를 받을 때 함수 내부에서 사용할 수 있는 라벨과 그 함수 밖에서 함수를 호출할 때 사용하는 라벨이 있는데 이게 좀 헷갈려서 아래 간단하게 정리한다. swift 함수에 대한 자세한 내용은 위 공식문서에 아주 잘 나와있다. 일단 함수에서 parameterName만 있다면? func sayHello(name: String) { print("hello \(name)") } sayHello(name: "Denise") 위처럼 사용하면 되는데 xcode로 코드를 작성하다보면 sayHello(_ type: String) {...} 이런 식으로 되어 있는 내장 함수들이 자주 ..

swift & iOS/swift 2022.01.07