NSExpression 위 클래스는 쉽게말해 컴퓨터 프로그램에서 계산을 도와주는 도구이다. 예를 들어, 우리가 1+2를 계산하고 싶다고 할 때, 이 계산을 대신해주는 역할을 한다. let expression = NSExpression(format: "1 + 2")let result = expression.expressionValue(with: nil, context: nil) as! NSNumberprint(result) // 결과는 3이야 이런식으로 우리대신 복잡한 계산을 쉽게 처리해줄 수 있는 도구이다. 위 같은 연산 뿐만 아니라, 데이터에서 값을 추출할수도 있다.let apples = ["Red": 10, "Green": 5]let expression = NSExpression(forKeyPath:..
Swift
출처 : 프로그래머스https://school.programmers.co.kr/learn/courses/30/lessons/12945난이도: Lv.02 문제 설명피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수 입니다.예를들어F(2) = F(0) + F(1) = 0 + 1 = 1F(3) = F(1) + F(2) = 1 + 1 = 2F(4) = F(2) + F(3) = 1 + 2 = 3F(5) = F(3) + F(4) = 2 + 3 = 5와 같이 이어집니다.2 이상의 n이 입력되었을 때, n번째 피보나치 수를 1234567으로 나눈 나머지를 리턴하는 함수, solution을 완성해 주세요. 제한 사항n은 2 이상 100,..

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 부분을 체크해주면 된다.

Xcode의 영역은 총 5가지로 나뉜다. Navigator Area1. 프로젝트 네비게이터프로젝트를 구성하는 디렉토리 구조를 파악swift 파일, 리소스(이미지, 컬러 등) 파일, 연결된 라이브러리 등을 확인 가능디렉토리, 파일을 생성하는 데 도움을 줌2. 소스 컨트롤 네비게이터소스 파일 버전 관리 용 네비게이터commit, commit history 등 git의 기능들을 사용하도록 돕는다.git repository와 연결을 해야 사용할 수 있다.3. 북마크파일에 북마크를 해두면 파일이 아주 많은 프로젝트에서 북마크 해둔 파일을 찾기 쉽다.4. 검색 네비게이터프로젝트 전체에서 검색할 때 사용Find -> Replace에서 기능을 바꿀 수도 있다.5. 이슈 네비게이터프로젝트 빌드 중 경고나 에러 같은 이슈..
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..

튜터님께서 강조해주신 의존관계 역전 원칙(DIP)! 자세히 알아보자. 먼저 단어를 뜯어서 의존성(Dependency) 주입(Inversion)으로 나눠 알아보자. 의존성 이란?-> 서로 다른 객체 사이에 의존 관계가 있다는 것 자 먼저, Swift에서는 보통 다른언어의 객체를 객체라고 표현 안 하고 인스턴스라는 용어를 더 자주 사용한다고 한다.그렇기 때문에 필자는 설명할 때 인스턴스라고 칭하겠다. 코드로 이해해보자.class B { var name: String = "대성"}class A { var kk: B = B() func Output() { print(kk.name) }}위 그림을 보면 클래스 'A'의 인스턴스는 클래스 'B'의 인스턴스를 의존할 수 있다고..