일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 애니메이션
- 스위프트UI
- 책 후기
- swiftUI
- Animation
- 독서
- wwdc
- stanford SwiftUI
- objective-c
- SWIFT
- swift5
- 책 추천
- 알고리즘
- Xcode
- 스위프트
- objc
- Algorithm
- leetcode
- ReactiveX
- 딥러닝
- ARC
- 책
- iOS SwiftUI
- 머신러닝
- string
- RX
- 문자열
- rxswift
- Deep learning
- ios
- Today
- Total
목록낑낑 (37)
THIS IS ELLIE
엄브렐러 타입 스위프트는 하나의 이름으로 다양한 타입의 속성에 대응할 수 있는 엄브렐러 타입을 제공한다. 애니오브젝트 iOS프로그래밍에서 가장 대표적인 타입이 엄브렐러 타입이 애니오브젝트다. 애니오브젝트는 프로토콜의 일종이며, 보통의 프로토콜이 그렇듯 프로퍼티나 메소드가 비어있는 상태다. 대신 모든 클래스 타입에 자동으로 부합할 수 있는 멋진 기능이다. 그래서 AnyObject가 들어갈 수 있는 자리에는 다른 어떤 클래스 인스턴스가 오더라도 할당 가능하거나 전달할 수있고, 그반대도 가능하다. class Dog { let d = Dog() let any: AnyObject = d let d2 = any as! Dog } 스위프트는 AnyObject를 이용해서 어떤 클래스 타입이든 캐스팅할 수 있고, 오브젝..
지연 초기화 ‘지연’이라는 단어는 속도보다 느려서 뭔가 문제가 있다는 의미로 사용된 것이 아니라, 초기화 방식의 중요한 속성을 설명하기 위해 사용됐다. 선언 내용의 일부로서 저장 변수가 초기 값으로 할당되거나, 지연 초기화 기법을 사용하면 실제 코드가 해당 변수의 값에 접근하기 전까지는 초기 값은 실제로 계산되거나 할당되지 않는다. - 전역변수 global variables 전역 변수는 기본적으로 지연 초기화를 하는 변수이다. 앱 아이콘을 터치하는 즉시 파일과 최상위 레벨의 코드가 상호작용을 시작하게 되는데, 아직은 앱이 실제로 실행되는 것이 아니므로 이때까지는 전역 변수를 초기화할 필요가 없다. 따라서 전역 변수의 초기화는 그럴 만한 이유가 생길 때까지 연기되며, 앱을 구성하는 여러 코드 중 하나가 전..
Unit Test를 하기 위해 파일을 추가해 유닛 테스트를 하려고 했다. 프로젝트에 파이어베이스 관련 라이브러리를 사용하기 있었기 때문에 Podfile에 Firebase/Core, Firebase/Database이 추가되어있었다. XCTest모듈이 import되어있고 XCTestCase를 상속받은 클래스 파일에 @testable import Only5라고 추가하려 했으나 에러가 발생했다. (Only5는 프로젝트 이름) 그런데 에러가 발생했다. Missing required module 'Firebase' 에러 메시지 내용은 'Firebase'모듈이 누락되었다고 적혀있었다. 이거 때문에 빌드도 안되는데 이럴 때는 Podfile에 search_paths를 추가해주면된다. 나는 Podfile에 아래 코드를 추..
스위프트 함수는 모두 클로저다. 함수 내의 유효 범위에서 외부 변수를 참조할 수 있는 함수를 특히 클로저라 칭한다. class Dog { var whatADogSays = "woof" func bark() { print(whatADogSays) } } bark 함수는 이 함수 바깥에 선언된 whatADogSays 변수를 참조할 수 있었다. 함수 몸체의 유효 범위기 때문이다. func doThis(f: () -> Void) { f() } let d = Dog() doThis(f: d.bark) 우리는 bark 함수를 직접 호출하지 않았다. Dog 인스턴스를 만들고 doThis함수의 값으로 bark함수를 전달했다. doThis함수에서 bark 함수를 호출했다. 이제 whatADogSays 변수는 Dog의 인..
스위프트로 하는 iOS 프로그래밍 이 책을 읽으면서 책에서 나온 또 다시 새겨보고 싶은 내용들을 끄적끄적 적어보려한다. 스위프트는 프로그래밍 코드를 작성한 후 컴파일러를 거쳐야만 하는 컴파일 언어이다. 컴파일은 컴퓨터가 명령을 실행하고 처리하기 전 단계로, 텍스트로 작성한 코드를 컴퓨터가 이해할 수 있는 저수준 언어로 변환하는 과정이다. 스위프트에서는 숫자 전용 데이터 타입은 없으며, 숫자를 포함한 모든 데이터는 객체 타입이다. 스위프트에서는 클래스 구조체 열거형 등 세가지 객체 타입이 있다. 변수란 객체의 이름이다. 엄밀히 말하자면 변수 또한 객체를 지칭하는 명칭이며 객체를 참조하기 위한 이름이다. 비유적으로 설명하자면, 변수는 신발이라는 객체를 담을 수 있는 신발 상자와 같은 것이다. 상자에 든 객체..