목록iOS (29)
어흥
1. 프로토콜이란? : 특정 서비스를 사용할때 진행해야 하는 일 예시) CustomStringConvertible를 사용하기 위해선 description을 반드시 정의해야 한다 //CustomStringConvertible 프로토콜 public protocol CustomStringConvertible{ public var description: String {get}//get: 읽기 속성, set: 쓰기 속성 } 2. 사용 코드 struct Lecture: CustomStringConvertible{ var description: String{ return "Title: \(lectureName), Teacher: \(teacher)" } var lectureName: String var teacher..
1. 차이 Structure Class Value type Reference type Copy Share Stack에 저장 Heap에 저장 Fast Slow 1) 각각 사용해야 할 때 [Struct를 써야 할 때] 1. 두 Object를 같다, 다르다로 비교해야 하는 경우 2. Copy된 각 객체들이 독립적인 상태를 가져야 하는 경우 3. 코드에서 오브젝트의 데이터를 여러 쓰레드 걸쳐 사용할 경우(여러 쓰레드가 접근할 경우) [Class를 써야 할 때] 1. 두 Object의 인스턴스 자체가 같음을 확인해야 할 때 2. 하나의 객체가 필요하고, 여러 대상에 의해 접근되고 변경이 필요한 경우 예시 코드) class PersonClass{ var name: String var age: Int init(nam..
[Closure] 1) 정의 및 특징 - 사용자의 코드 안에서 전달되어 사용할 수 있는 로직을 가진 일급 객체로, {}로 구분된다 - 일급 객체는 전달 인자로 보낼 수 있고, 변수/상수 등으로 저장하거나 전달할 수 있으며, 반환값도 가능하다 - 참조타입이며, 함수는 이름이 있는 클로저다 1-1) 함수 클로저 Function(Global) Closure 이름이 있다 이름 없다 func 키워드 필요 func 키워드 필요 없다 인자 받을 수 있다 값 Return 가능 변수로 할당할 수 있다 일급 객체(First Class Type) 2) 사용법 {(parameters) -> return type in statements } 3-1) 예시 @IBAction func hello(_sender:Any){ let a..
[Dictionary] 1. 정의 - Key와 Value를 저장해서 가지고 있다(Map이나 HashMap이랑 같다고 보면 될것 같다) - 순서에 상관 X 2. 기본 기능 + 예제 //선언 방법 var scoreDic: [String, Int] = ["Jakob": 85, "John": 100, "Jasmine": 90] var scoreDic2: Dictionary = ["Jakob": 85, "John": 100, "Jasmine": 90] scoreDic["Jakob"]//85 scoreDic["Yasmine"]//nil if let score = scoreDic["John"]{//optional binding print(score) } else{ print("해당 학생이 존재하지 않습니다") } /..
1. 선언 방법 var evenNumbers:[Int] = [2,4,6,8]//[2,4,6,8] let evenNumbers2:Array = [2,4,6,8]//[2,4,6,8] 2. 원소 추가 evenNumbers.append(10)//[2,4,6,8,10] evenNumbers+=[12,14,16]//[2,4,6,8,10,12,14,16] evenNumbers.append(contentsOf:[18,20])//[2,4,6,8,10,12,14,16,18,20] 3. 기타 기능 let isEmpty = evenNumbers.isEmpty//bool값 return let size = evenNumbers.count//배열의 개수 return let firstItem = evenNumbers.first//o..
1. nil이란? : 박스를 생성했는데 안에 값이 없는 상태 var carName: String? = nil//타입뒤에 '?' 꼭 필요 carName = nil//nil 상태 carName = "땡크" //nil 아닌 상태 2. 4가지 고급 기능 - Forced unwrapping > 억지로 박스를 까보기 - Optional binding(if let) > 부드럽게 박스를 까보자 1 - Optional binding(guard) > 부드럽게 박스를 까보자 2 - Nil coalescing > 박스를 까봤더니, 값이 없으면 디폴트 값을 준다 var carName = "Bently" print(carName)//Optional("Bently") 출력 //1. Forced unwrapping print(car..
1. 함수를 매개변수로 사용 //----Function as a param //#1 func add(_ a: Int, _ b: Int)->Int{ return a+b } func subtract(_ a: Int, _ b: Int)->Int{ return a-b } var function = add print(function(4,2)) //6 function = subtract print(function(4,2)) //2 //#2 func printResult(_ function:(Int, Int) -> Int, _ a: Int, _ b: Int){ let result = function(a,b) print(result) } printResult(add, 10, 5) //15 printResult(subt..