전체 글

· Swift
Failed to instantiate the default view controller for UIMainStoryboardFile 'Main' - perhaps the designated entry point is not set?  -> Why?  위와 같은 오류가 발생하였다. 최초에 Main.Storyboard와 ViewController가 연결되어 있었는데, 이 부분을 수정하는 과정에서 문제가 발생한 것 같다.   -> 해결 과정?  위 처럼 Atrributes inspector 창에서 View Controller -> Is Initial View Controller 부분을 체크해주면 된다.
· Swift
Xcode의 영역은 총 5가지로 나뉜다. Navigator Area1. 프로젝트 네비게이터프로젝트를 구성하는 디렉토리 구조를 파악swift 파일, 리소스(이미지, 컬러 등) 파일, 연결된 라이브러리 등을 확인 가능디렉토리, 파일을 생성하는 데 도움을 줌2. 소스 컨트롤 네비게이터소스 파일 버전 관리 용 네비게이터commit, commit history 등 git의 기능들을 사용하도록 돕는다.git repository와 연결을 해야 사용할 수 있다.3. 북마크파일에 북마크를 해두면 파일이 아주 많은 프로젝트에서 북마크 해둔 파일을 찾기 쉽다.4. 검색 네비게이터프로젝트 전체에서 검색할 때 사용Find -> Replace에서 기능을 바꿀 수도 있다.5. 이슈 네비게이터프로젝트 빌드 중 경고나 에러 같은 이슈..
· Swift
Swift 제네릭 정리Swift에서 제네릭은 코드 재사용성을 높이고, 타입에 독립적인 함수, 구조체, 클래스, 열거형 등을 작성할 수 있게 해준다.제네릭 함수제네릭 함수는 타입 매개변수를 사용하여 다양한 타입에 대해 동작하는 함수를 작성할 수 있게 해준다.func swapTwoValues(_ a: inout T, _ b: inout T) { let temporaryA = a a = b b = temporaryA} 제네릭 타입제네릭 타입은 구조체, 클래스, 열거형에서 사용되어 다양한 타입에 대해 동작하는 타입을 정의할 수 있게 해준다.//제네릭 구조체struct Stack { var items = [Element]() mutating func push(_ item: Ele..
· Swift
튜터님께서 강조해주신 의존관계 역전 원칙(DIP)! 자세히 알아보자. 먼저 단어를 뜯어서 의존성(Dependency) 주입(Inversion)으로 나눠 알아보자. 의존성 이란?-> 서로 다른 객체 사이에 의존 관계가 있다는 것 자 먼저, Swift에서는 보통 다른언어의 객체를 객체라고 표현 안 하고 인스턴스라는 용어를 더 자주 사용한다고 한다.그렇기 때문에 필자는 설명할 때 인스턴스라고 칭하겠다. 코드로 이해해보자.class B { var name: String = "대성"}class A { var kk: B = B() func Output() { print(kk.name) }}위 그림을 보면 클래스 'A'의 인스턴스는 클래스 'B'의 인스턴스를 의존할 수 있다고..
· Swift
클로저 먼저, 클로저는 named clousre와 unnamed clousre로 나뉜다.named clousre는 우리가 사용하는 함수를 말 하는데, 일반적으로 우리는 이를 클로저라고 부르지 않고 그냥 함수라고 부른 것 뿐이다.(함수는 실제로 클로저에 속함)func daesung() { print("안농안농")}  그리고 다음과 같이 이름을 붙이지 않고 사용하는 함수를 익명함수 unnamed clousre라고 부른다. let closure = { print("나는 클로저~") } 따라서 위 말들을 정리해보면, 클로저는 named clousre 와 unnamed clousre 둘 다 포함하지만,우리는 보통 unnamed clousre를 클로저라고 부른다.그럼 이름 없는 함수인 클로저는 왜 필요한가? 라고 ..
· Swift
타입 캐스팅자, 타입 캐스팅이 뭘까?타입 캐스팅이란 인스턴스의 "타입"을 확인 하거나, 해당 인스턴스를 슈퍼 클래스나 하위 클래스로 취급하는 방법이다. 여기서 타입이란?기본 데이터 타입(Int, Double, String, Bool 등등)옵셔널(Optional)커스텀 데이터 타입(struct, class, enum, protocol 등)자 이제, 코드를 통해 알아보자. 1) isis 연산자는 타입을 체크하는 연산자. 비교 결과를 bool 타입으로 반환한다.예시 코드let char: Character = "A"print(char is Character)// 출력값: trueprint(char is String)// 출력값: falselet bool: Bool = trueprint(bool is Bool)/..
pockpock
머성이의 개인 스터디