일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- swift문법
- useReducer
- StateObject
- global soop
- 애플 디벨로퍼 아카데미 21주차 회고
- 앱 비교 프로젝트
- react
- ObservableObject
- 데이터베이스
- iOS 개발 오류
- 숭실대
- Apple Developer Academy @ POSTECH
- 제앱소
- apple developer academy 후기
- Swift 문법
- Swift 디자인패턴
- 네이버 치지직
- OS
- 애플 아카데미 후기
- 소프트웨어분석및설계
- 치지직
- Swift 기능
- sqoop
- 애플 디벨로퍼 아카데미 후기
- 애플 디벨로퍼 아카데미
- 데이터베이스 공부
- ObservedObject
- SWIFT
- 운영체제
- 네이버 부스트캠프
- Today
- Total
목록제라스의 iOS 공부/Swift 문법 (18)
사과하는 제라스
서론안녕하세요! 제라스입니다~!! 🤖:-D🤖 아니...제가 지난주에 공부를 하다가 같은 러너인 피카한테 다음과 같은 질문을 받았어요...!! import UIKitstruct Student { var name: String var location: String private var bestFriend = "Nobody"} 이런 식으로 struct를 구현하면 name, location은 init해주면 되지만,bestFriend는 값이 들어있으니 init해주지 않아도 되는 것 아니냐는...?!?!?! 어...그러게여?? 하하하... 알고보니 private 속성이 하나라도 있으면 Memberwise Initializer도 private으로 설정이 된다고 하더군요...!그래서 결국 외부에서..
서론 하이루~~ 안녕하세요 개발자 제라스입니다. 👋🏻🤖👋🏻 요즘 통 업로드가 적었는데 조만간 업로드 될 테지만 사실 작년 네이버 부스트캠프 웹•모바일 8기를 수료한 후 지금은 포항에서 Apple Developer Academy 3기를 하고 있습니다. 사실 3주 전에 제 학사모를 고이 보내드리고 이젠 어엿하지 않은데 어엿한 사회인인 척 해야하는 어엿 호소인이 되었습니다. 이후 잠시 포항에 내려오기 전에 여행 좀 하고 심적 여유를 가지려고 하다보니 조금 포스팅이 늦어졌네요. 무튼 무튼, 준비도 할 게 많고 네트워킹도 하고 하다보니까 지금도 올릴 포스팅들이 밀려있네요. 막 이거 공부해서 써야지~했는데 죄다 쓰다만... 조만간 여러가지 주제로 조금씩 준비하던 것들을 업로드해보겠습니다! 사실 제가 이곳에 와서 처..
Set 타입은 중복된 값이 없다는 점이 참으로 중요한 특징이다. 그렇다면 이것을 활용해서 자료구조를 다뤄보자. 다음 블로그를 통해 공부를 했는데 크게 4가지의 Set 기본연산 메소드가 있다. https://0urtrees.tistory.com/101 swift Set 자료구조, 집합 기본연산 메서드 정리 안녕하세요! 저는 Develop 멍구 입니다. ^-^// 🤗 오늘은 스위프트의 자료구조 중 하나인 Set, 집합 컬렉션의 대표적인 집한연산 메서드를 정리해보겠습니다. 그럼 바로 시작하겠습니다~ 🤩 iOS swift 0urtrees.tistory.com 1. union : 두 개의 Set을 합집합을 구하는 기능이다. var set1 = [1,2,3,4] var set2 = [3,4,5,6,7] set1.u..
딕셔너리 타입을 이용해서 반복을 돌리는 경우를 은근 많이 겪었다. 물론 보통 (key, value)를 엮어서 사용할 줄 알지만 좀 더 다양한 방법을 공부했기에 적어두고자 한다. 다음 코드를 보면 모두 이해가 될 것이다. import UIKit let myFriends : [String: Int] = ["철수" : 19, "수잔": 23, "제임스": 30] // 이건 내가 평소에 쓰던 방식의 튜플을 이용해서 쓰는 방식이다. for (name, age) in myFriends { print("이름: \(name), 나이: \(age)") } // 하지만 이렇게 forEach와 클로져를 엮어서 적용하는 방법도 존재한다. myFriends.forEach { (name: String, age: Int) in p..
프로토콜은 그걸 준수하기 위해 쓴다. 근데... 어떤 경우엔 안쓰고 싶을 수도 있잖아..!! 그래서 방법으로 extension을 활용해서 init을 분리해서 반드시 상속하진 않아도 되는 방식으로 짜기도 했다. 하지만 또 다른 근본적인 방법을 고안해보면 @objc를 활용하는 방식이 있을 수 있다. 다음 코드를 보도록 하자. import UIKit // 원래 이런 방식으로 extension에 적용함으로서 doCry를 반드시 구현하지 않아도 되도록 구현할 수도 있지만, protocol Pet { } extension Pet { func doCry(){} } // 이런 식으로 오브젝트-c 프로토콜 내에서 optional 키워드를 주면 // 해당 멤버는 반드시 구현하지 않아도 문제가 없도록 프로토콜을 적용할 수 ..
zip은 보통 우리는 파일을 압축시킨 확장자로 많이들 알고 있다. 이랑 비슷한데 zip을 활용하면 두 배열을 순서대로 연결지어 하나의 것으로 압축시켜서 활용할 수 있다. 다음 코드를 보도록 하자. import UIKit //let friends = ["영희", "철수", "존슨", "제임스"] //let pets = ["야옹이", "댕댕이", "찍찍이"] // //let friendAndPetPairs = zip(friends, pets) // // //for aPair in friendAndPetPairs { // print("\(aPair.0), \(aPair.1)") //} let friends = ["영희", "철수", "존슨", "제임스"] // 이렇게 하면 friends의 길이에 맞게 연결된다..
Equatable 프로토콜이란? Equatable 프로토콜은 주어진 타입 간의 동일한 데이터를 가지는지 비교 연산을 구현하도록 하는 규약이다. 코드로 이해하는 Equatable 프로토콜 다음 코드를 보도록 하자. import UIKit struct Pet : Equatable{ let id: String let name: String static func == (lhs: Pet, rhs: Pet) -> Bool { return lhs.id == rhs.id } // 사실 !=는 안적어도 된다. Equatable을 준수하면 !=는 ==의 반대 결과로 알아서 적용된다. static func != (lhs: Pet, rhs: Pet) -> Bool { return lhs.id != rhs.id } } let ..
reduce를 활용하면 주어진 콜렉션 타입 내 모든 요소에 대해 연이은 작용을 할 수 있다. 뭔 소리야...? 그냥 예를 들면, 1. 배열 내 모든 값을 더하고 싶을 때 2. 배열 내 모든 값을 곱하고 싶을 때 등등 코드로 보자. let nums = [1,2,3,4,5,6,7,8,9,10] // 이런 숫자 list 내 모든 원소를 더하고자 하면 보통 for문을 써서 모든 값을 더한다. var sum = 0 for num in nums { sum += num } print(sum) 하지만 이런 for문 말고 reduce를 쓰면 원큐에 모든 값에 대한 작업을 적용할 수 있다. 방법1. let numberArray = [1,2,3,4,5,6,7,8,9,10] let sum = numberArray.reduce..