목록Swift (208)
HIT해

Convenience init이란?추가적인 생성자 정의 일반적인 Class initclass Friend { var name : String var age : Int // 클래스라서 생성자를 만들어주어야함 init(name: String){ self.name = name self.age = 10 }}let myFriend = Friend(name : "자우림") Convenience initclass Friend { var name : String var age : Int // 클래스라서 생성자를 만들어주어야함 init(name: String){ self.name = name self.age = 10 } ..

멀티 트레일링 클로저란?트레일링(trailing : 끝)매개변수로서 클로저를 가지는 것인데. 매개변수가 마지막에 있을떄를 뜻합니다. 예시func trailingClosure(name : String = "", completion : () -> Void) { print("\(name}") completion()} 매개변수로서 위치가 오른쪽에 있기만 하면 트레일링 클로저라고 한다. 사용할때는 보통trailingClosure(completion: { print("closure")})// or// 축약형trailingClosure { print("closure")} 이렇게 사용하게 되는데 클로저가 매개변수로서 많이 들어갔을때 : 멀티 트레일링 클로저func multiClosures(first: ()-> V..

Codable이란?JSON형태의 타입을 Decode Encode 하게 하는 프로토콜decode - JSON to struct || classencode - struct || class to JSON typealias Codable = Decodable & Encodable 사용예시let jsonFromServer = """{ "nick_name" : "자우림" "job" : "singer" "user_name" : "2125"}"""struct User : Codable { var nickname : String var job : String var myUserName : String enum CodingKeys : String, CodingKey{ case ni..

Getter 사용 예시class Friend { var name : String var age : Int var info : String { get{ return "내 친구 : \(name) 나이 \(age)" } } init(name: String, age : Int) { self.name = name self.age = age }}let myFriend = Friend(name: "자우림", age : 25)// 이때 info 초기값이 설정되어 있지 않다.// 그래서 info getter를 생성해준다.myFriend.info // 내 친구 자우림 나이 25 Getter는 값을 설정할때 ..

import UIKit// 프로토콜은 약속// 뭔가를 강제protocol Talking { func sayHi()}class BestTalk : Talking { func sayHi() { print("최고의 대화였어") }}class OldTalk : Talking { func sayHi() { print("오랜만의 대화였어") }} 두 클래스 모두 sayHi라는 함수를 가지고 있어야만한다. 의존성 주입을 해보자import UIKit// 프로토콜은 약속// 뭔가를 강제protocol Talking { var saying : String { get set } func sayHi() }class BestTalk : Talking {..

dictionary grouping이란?dictionary값들을 키 또는 값 타입에 따라 쉽게 분류해주는 함수다. 사용예시import UIKitenum FriendType { case normal, best}struct Friend { var name : String var type : FriendType}var friendList = [ Friend(name: "철수", type: .normal), Friend(name: "영희", type: .best), Friend(name: "제임스", type: .best), Friend(name: "수잔", type: .normal)]// grouping : 나누려는 콜렉션을 넣어준다. by : 타입에 따라서 분류해라//..

사용예시class Friend{ // 1. func sayHi(){ print("안녕!") } // 2. class func sayBye(){ print("바이바이") } // 3. static func sayHoho(){ print("호호") }}// 1.// 호출하려면 인스턴스를 만들어야한다// 클래스를 메모리에 올려서 객체 인스턴스를 만들어야한다.let myFriend = Friend()myFriend.sayHi()// 2.// 메모리에 올리지 않아도 바로 호출할 수 있는 메소드// 오버라이드가 가능하다.Friend.sayBye()// 3.// class func과 같이 클래스명.함수명으로 호출이 가능하다.// ..

compactMap이란고차함숭서 nil일 경우에 해당하는 아이템이 nil이 나오면 내뱉지 않게 하는 것이다. flatMap이란배열 안에 배열이 있는 형태를 납작하게 만드는 고차함수다.1차원 배열로 만든다!let myFriends = [ ["철수"], ["짱구","훈이"], ["유리","멩구"] ] let flatMapped = myFriends.flatMap{ (item:[String]) in return item}print(flatMapped) // ["철수","짱구","훈이","유리","멩구"] 이런 문법을 왜 공부해야할까? Swift안에 여러 기능들이 있는데 제공하는게 많으면 많을 수록 좋다.Why? 우리는 이런 도구를 가져다가 사용하는 직업을 가질 것이기 때문이다.언어라는 ..