[iOS/swift] Build input file cannot be found: 오류해결
·
IOS - Swift
Build input file cannot be found: PATH/TO/FILE/FILE.swift 위와같이 경로 오류가 나는경우 해결방법입니다. 이유는 모르겟는데 갑작스럽게 파일들이 전부 튕깁니다. 그럴때는 프로젝트 네비게이션(맨위 target) 로 이동하고 build phases 로 이동합니다. 그러면 지금 빨간색으로 잃어버린 파일들이 Compile Source에 뜨는데 여기서 파일들을 - 로 삭제해주면 됩니다. 그러고 + 버튼을 눌러서 파일을 다시 삽입하면 정상작동됩니다.
[ios/xcode] StoryBoard Action Segue 종류
·
IOS - Swift
총 5가지 방법으로 지정할 수 있습니다. Show: stack 최상단에 뷰 컨트롤러가 load 됩니다. 새로운 뷰 컨트롤러를 stack에 Push하고 활성화 된 다음, 이전 화면으로는 stack이 pop 되어 사라집니다. ShowDetail: show와 구조가 비슷하지만 push가 아닌 교체되는 구조입니다. Present Modally: 뷰를 Modal 형태로 나타냅니다. Present As Popover: 현재 보이는 뷰 컨트롤러 위에 앵커를 내려 팜업뷰를 보여줍니다. Custom: 커스텀입니다.
Mac 에러해결기: (xcrun: error: unable to find utility "xcodebuild", not a developer tool or in PATH)
·
IOS - Swift
[Xcode] - [Preferences] - [Locations] - [Command Line Tools] 설정해주면 해결할 수 있다.
Mac 에러 해결기 (xcrun: error: invalid active developer path)
·
IOS - Swift
IDE에서 깃 명령어를 입력하니 xcrun: error: invalid active developer path (...) 라는 에러가 발생했다..! xcode를 업데이트하면 생기는 오류인듯한데 매번 찾기 귀찮아서 블로그에 포스팅으로 남겨두어야겟다. xcode-select --install 해당 코드를 입력하면 간단히 해결된다.
Swift 기초문법 - In-out Parameters
·
IOS - Swift
📖 In-out Parameters 📌 In-out Parameter (인-아웃 파라미터) swift 내 함수에서의 파라미터는 상수이므로, 함수 내에서 파라미터의 값을 변경하는 것은 불가능합니다. (실수로라도 파라미터의 값을 변경시킬 수 없습니다.) 하지만 In-out 파라미터 를 활용하면 함수 안에서 파라미터의 값을 변경하고, 함수 호출이 종료된 이후에도 변경된 값이 지속되게 됩니다. inout 매개변수는 다음의 과정을 거치게 됩니다. 함수가 호출되면, 매개변수로 넘겨진 변수가 복사된다. 함수 몸체에서, 복사한 값을 수정한다. 함수가 반환될 때, 변화된 값을 원본 변수에 재할당한다. 이 동작을 copy-in copy-out 혹은 다른언어에서의 call by value result 라고 불리게 됩니다. ..
Swift 기본문법 - Dictionary
·
IOS - Swift
📖 딕셔너리 📌 딕셔너리 (Dictionary) 딕셔너리 는 키와 값으로 이루어져있는 콜렉션 입니다. 형태는 키 : 값 으로 이루어져 있습니다. 💬 배열 은 데이터가 줄지어 나열되어 있다면, 딕셔너리 는 키를 가지고 사물함을 여는 것처럼 키를 활용해 값을 가져오는 것입니다 📌 딕셔너리 활용하기 ex) var myFriend = ["bestFriend" : "후니", "highschool" : "후니엄마"] let myBestFriend = myFriend["bestFriend"] >>> "후니" 💬 값을 덮어쓸 수 있습니다. myFriend["bestFriend"] = "밥먹는 사람" 📌 딕셔너리에서 찾고자 하는 값이 없을 때 ex) let youtubeFriden = myFriend["youtube",..
Swift 기본문법 - 상속
·
IOS - Swift
📖 상속 📌 상속 (Inheritance) 상속 이란 부모한테 자식이 물려받는 것처럼, 어떠한 클래스의 프로퍼티와 메소드를 다른 클래스에게 그대로 물려주는 것입니다. 클래스에서는 저장된 프로퍼티와 계산된 프로퍼티와 상관없이 상속받은 프로퍼티에 프로퍼티 옵저버를 설정해서 값 설정에 반응할 수 있습니다. 💬 위에서 아래로 내려오는 것 💬 이브이에 여러 속성이 더해져, 다양한 모습으로 진화하는것이 하나의 예시입니다. 📌 클래스 생성 class Friend { var name : String init(_ name : String) { self.name = name } func sayHi() { print("안녕? 나는 \(self.name)라고 해") } } 📌 오버라이딩 (Overriding) 서브클래스(부모..
Swift 기초문법 - Closure
·
IOS - Swift
📖 Closure (클로저) 📌 Closure란 클로저 (Closure)는 코드블럭으로 C와 Objective-C의 블럭(blocks)과 다른 언어의 람다(lambdas)와 비슷한 성격을 지닙니다. 💬 클로저는 크게 두 가지 종류로 나눌 수가 있습니다. Named Closure Unnamed Closure 이름이 있는 보통의 함수(우리가 알고 있는 함수들)는 Named Closure 이고, 이름이 없는 함수들을 Unnamed Closure (익명 함수) 라고 합니다. 보통 클로저를 말할 때는 Unnamed된 함수를 의미합니다. 📌 NamedClosure vs UnNamed Closure 표현식 func coder() { print("hooni") } 이처럼 기존에 선언한 함수 를 이름이 있는 클로저라고 ..
Swift 기초문법 - Generic
·
IOS - Swift
📖 Generic (제네릭) 📌 Generic이란 Generic (제네릭) 은 어떠한 자료형이든 받고 싶을 때 사용하는, 범용 코드를 작성할 때 사용합니다. 이로인하여, 유연하고 재사용 가능한 함수와 타입의 코드를 작성하는 것이 가능해집니다. 📌 제네릭 함수 제네릭 은 을 통해 나타내고, 이 안에 타입처럼 사용할 이름을 넣어주면 됩니다. (Type Parameter의 약자인 T를 주로 사용합니다.) 또한, 대문자 카멜 케이스로 이름 짓습니다. 대문자로 된 이름은 값(value)이 아니라 타입(type)을 의미합니다. ex) struct MyArray { // 제네릭을 담은 빈 배열 var elements : [SomeElement] = [SomeElement]() // 생성자 자체는 만들지 않아도 되지만..