목록Swift (208)
HIT해

Optional chaining이란?프로퍼티가 없는 중첩 객체를 에러 없이 안전하게 접근할 수 있는 문법이다. Optional이란?데이터가 있을수도 없을 수도 있는 상태 Optional Binding이란?오류가 없을때 변수에 할당하는 것 if let 사용을 하면struct Friend { let nickname: String let person: Person?}struct Person { let name: String let pet: Pet?}struct Pet{ let name: String? let kind: String}let pet = Pet(name: "개냥이", kind: "고양이")let person = Person(name: "정대리", pet: pet)..

1. List to Setlet numbers = [1,1,1,2,3,4,5]let uniqueNubers = Set(numbers)// 중복은 자연스레 지워진다. 2. Set to ListuniqueNumbers // {1,2,3,4}let uniqueNumberArranged = Array(uniqueNumbers) // [1,2,3,4]uniqueNumberArranged.sort()

Reduce란?주어진 클로저를 사용하여 시퀀스의 요소를 결합한 결과를 반환합니다.=> 요소들을 다 합친다고 보면 됨 사용예시struct Friend : Hashable { var name : STring var age : Int}let myFriends = [ Friend(name:"철수", age : 10) Friend(name:"짱구", age : 10) Friend(name:"유리", age : 10) Friend(name:"멩구", age : 10)]let totalAge = myFriends.reduce(0) { partialResult , aFriend in return partialResult + aFriend.age}// reduce(초기값) { partialResult , aFrie..

동일한 디자인이지만 들어가는 요소가 다른 컴포넌트를 만들어야 한다. 컴포넌트에 들어가는 요소 3가지이미지텍스트이동할 페이지 그렇다면 3가지를 매개변수로 입력받고 재사용을 하면 될 것이다. 다른건 동일하지만 유일하게 텍스트만 없다. 해결하려면 아래와 같은 처리를 해주어야한다.텍스트 매개변수 옵셔널 처리텍스트가 담긴 Stack 조건부 처리 코드 예시다HStack{ BottomButtonView(imageName: "Calander", buttonText: "달력", destination: AnyView(ContentVieww())) BottomButtonView(imageName: "Harubang", buttonText: "하루방", destination: AnyView(..

규모 있는 프로젝트를 진행하며 여러 리소스들을 하나의 Assets 카탈로그에 담아 관리하니 가독성이 좋지 않았다. 그래서 폴더별로 카탈로그를 만들어서 관리를 하기로 결정했다. 카탈로그 만들기기본적으로 Xcode에서 프로젝트를 생성할때 Assets.xcassets라는 폴더가 있는것을 볼 수 있다. Assets 카탈로그는 이미 존재하기 때문애 새로운 이름의 카탈로그를 만들어야한다. 카탈로그를 만들기 원하는 폴더를 선택해준 뒤 'File -> New -> File' 를 선택해주면 아래와 같은 화면이 나온다. Asset Catalog를 선택하고 원하는 원하는 이름으로 지정해주면 된다. 나의 경우 HomeView에서만 사용하는 리소스들을 담기 위해 뷰이름을 달아주었다. 에셋 추가하기사진 하나하나의 경우 +버..

ListSetDictionary이 세가지를 활용한 콜렉션 합치기를 알아보자! 1. List 합치기let myFriends = ["철수", "짱구"]let otherFriends = ["멩구", "유리"]let totalFriends = myFriends + otherFriends// myFriends.append(contentsOf: otherFriends)// 보통 이방식으로 많이 합치는데 단점이 두가지 있다.// 1. let으로 선언되어있기에 append를 사용할 수 없다.// 2. 기존의 한 배열에 추가하는 형태이기에 초기값의 변경이 일어난다 (알고리즘 풀이할때 곤욕!) 이때 List와 Set을 합칠 수도 있다.let myFriends = ["철수", "짱구"]let otherFriends : Se..

https://docs.swift.org/swift-book/documentation/the-swift-programming-language/aboutswift Documentation docs.swift.org

Builder 패턴이란?만들어주는 것을 만든다.자기 자신을 내뱉는게 핵심이다 struct Pet { var name : String? = nil var age : Int? = nil}class PetBuilder { private var pet : Pet = Pet() func withName(_ name : String) -> Self{ pet.name = name retrun self } func withAge(_ age : Int) -> Self{ pet.age = age return self } func build() -> Pet{ return self.pet }}let myPet = PetBuild..