iOS_swift문법 정리
-
Swift[Generic] ... <T>iOS_swift문법 정리 2020. 7. 23. 09:59
스위프트에는 Generic 타입이 있다. 타입을 미리정의하지 않고 그때 그때 결정 할수있다. 예를 들면 데이터 콜백 모듈같은 경우 Class나 Struct에 담아 사용할때 결과 형을 호출하는곳에서 정할수있다. 제너릭 타입에 를 사용하여 정의한다! func testGeneric(type:T.Type , completion: @escaping (_ result: T?) -> Void) { } type 에 어떤 타입으로 리턴받을지를 정하고 탈출 클로져로 해당 타입의 객체를 던져 주었다. struct TestSt { var test1 = 1 var test2 = 2 var test3 = "" } class TestClass2 { var test5 = 1 var test6 = 2 var test7 = "" } c..
-
extension 익스텐션iOS_swift문법 정리 2020. 6. 25. 17:31
익스텐션은 "확장" 이라는 뜻으로 기존에 있는 class, struct, protocol에 확장함수를 추가하는것이 가능하다. 활용 String객체에 뒤에 "test" 글씨를 추가하기 원한다. 익스텐션이 없이 공통 함수를 만들려면 공통으로 접근 가능한 클레스에 func setPlusTest(string:String) -> String { return string + "test" } 이렇게 스트링을 인자로 받아 추가해서 다시 스트링으로 리턴을 해줘야 한다. 하지만 익스텐션을 사용하면 클레스에서 사용하는 모든 객체에 함수 부여가 가능하다. extension String //==> String클레스에 함수를 추가하라 { func setPlusTest() -> String { return self + "test"..
-
swift Class AND structiOS_swift문법 정리 2020. 6. 18. 09:09
아이폰 개발자 경력직질문으로 받는 질문중에 class 와 struct 의 차이 거의 90프로는 나오는듯 하다! ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 기본형 기본형만 보면 class대신 struct로만 바뀐것 같은데.. 해서 공통점과 차이점을 정리한다. Class 와 Struct의 공통점 1. 프로퍼티 변수 선언이 가능하다. 2. 함수 구현이 가능하다. 3. init(생성자) 선언이 가능하다. 4. extension(확장) 이 가능하다. 5. protocol사용가 가능하다. Class 와 Struct의 차이점 1. 구조체는 상속이 불가능하다. (상속을 활용하려면 class를 활용해야한다) 2. 구조체는 AnyObject타입으로 케스팅이 불가능하다! (구조체는 값 타입이기 때문에....) 3. 클레스는 reference타입..
-
[SWIFT]옵셔널 ?, !, !!iOS_swift문법 정리 2020. 6. 16. 18:17
옵셔널은 왜 사용하는가. 변수 자체에 널값을 허용 해준다. 1. 옵셔널(물음표) ? "?" 는 변수나 클레스 뒤에 붙이며 nil값의 허용을 의미한다. 처음엔 나도 왜 만들었는지 그냥 쓰면되지 하고 생각했는데 testNotNull이 nil인 상태에서 프로퍼티 변수나 함수를 쓰면 런타임 오류가 100프로 나기 때문에 최소한 컴파일 전에 100프로 발생할 오류는 막자는 차원에서 나왔다고 한다.... 2. 옵셔널의 사용 testNull을 사용하려고 했는데 아래 콘솔에 Optional("테스트 데이터 입력!") 로 나온다. ?로 선언 했기때문에 옵셔널에 감싸졌기 때문이다 이를 뽑아 사용하려면 ! 를 붙인다! !를 붙이면 데이터를 꺼내서 사용 가능하다 (단, nil인경우에는 앱이 죽을 수 있다.) 예제를 통해서 좀..