전체 글

린다's iOS 성장일기 (@yeonda.dev) Github : https://github.com/syss220211
iOS 스터디가 있는데 매주 공부한 내용을 한번에 사용할 수 있는 화면을 구현해보고 있거든용 이번주 월요일은 로그인 화면을 구현하는 것을 목표로 잡고 스터디를 하기로 했어요. 왜냐? SwiftUI의, @State, @Binding, TextField에 대해서 공부했기 때문이죠. 구현조건 이메일 텍스트 필드는 이메일 키보드가 나오도록 설정 비밀번호 텍스트 필드는 암호화 되어서 보이도록 설정 이메일, 비밀번호 텍스트 필드에 값이 있고, 토글이 활성화 되어야 버튼도 활성화 되도록 설정 요 3가지가 일단 공통적으로 구현하자고 약속한 조건이었슴다. 그래서 먼저 아이디, 비밀번호 텍스트 필드부터 구현을 하고자 했으나.. UIKit과는 다르게 테두리가 없어서(?) style를 따로 설정해줘야 하더라구요. 근데 저는..
SearchBarController랑 CollectionView를 함께 사용해보려고 했다. 테이블뷰를 코드 베이스로 구현해보았기 때문에 똑같을 줄 알고 그대로 구현했는데 "UICollectinView must be initalized with a non-nil layout parameter"이라는 에러가 발생했다... 읭 .. ? 싶어서 찾아보니 CollectionView는 레이아웃 파라미터 없이 초기화를 할 수 없다는 의미였음.. tableView랑은 다르게 collectionView는 생성할 때 레이아웃을 파라미터로 넣어서 생성해야 한다. 코드로 보여주면 tableView처럼 UITalbeView()로 생성할 수 없다는 말 왜인지 찾아보니 공식 문서에도 이렇게 나와있었다 .. 어쨌든 파라미터로 레이아..
이미 알고 이 페이지를 보는 것이겠지만.. 우리가 지금까지 변수! 상수!라고 생각하면서 사용했던 것들이 실은 프로퍼티랍니다. (프로퍼티랑 속성이랑 같은 말임) 속성에는 저장속성, 계산속성, 지연저장속성… 이 있음 슉슉 정리해봅시다!! 저장속성 (클래스, 구조체에서 선언 가능) 클래스나 구조체에서 인스턴스가 가지는 공간으로 쉽게 우리가 지금까지 변수/상수로 선언했던 인스턴스에요. 인스턴스 초기화시 각 저장속성은 값을 가져야 하는건 다들 아시져? 지금 여서 resultCount랑 results 가 저장속성이라는 말을 하고 있는겁니다. 지연저장속성 초기화를 지연하는 것인데... 이게 무슨 말이야 싶으시죠 대충 일반 인스턴스가 최기화 된후에 나중에 개별적으로 초기화 된다고 생각하면 될듯..해요 저는 이렇게 이해..
Closure Closure는 Unnamed function, 이름이 없는 함수에요. 함수와 마찬가지로 1급 시민이지만, 함수와 다르게 argument label 사용 하지 않아요. Syntax! { (parameters) -> Return Type in statements } // 함수와 동일하게 파라미터와 리턴 타입 생략 가능 { statements } // 위와 동일한 closure 클로저는 global scope에서 단독으로 사용 불가, 상수나 변수에 저장하여 사용해야해요. 아무래도 이름이 없는 함수니까 냅다 클로저만은 사용할 수 없겠죵 ? 이렇게 저장해서 사용해야합니다. (당연히 매개변수로 넣을 수 있음) let c = { (str : String) -> String in return "Hell..
· 알고리즘
LinkedList = value + next address python 으로 구현한 LinkedList 주석 참조 (나중에 정리해서 올릴 예정 . .) # 노드 : value + next address class Node: def __init__(self, value = 0, next = None): # 아무 값도 없을 때 초기화 self.value = value # 객체 생성시 초기화 self.next = next # LinkedList는 head를 가지고 있어야함 (맨처음에 가르키는것 = head) class LinkedList(object): def __init__(self): self.head = None # 처음 생성시 head == None def append(self, value): # a..
옵셔널 정리 거의 다 왔어요! 좀만 더 힘내서 해봅시당 본 글은 인프런의 iOS 개발을 위한 swift% 완번 가이드를 기반으로 정리한 글임을 참고 부탁드려요!! 그럼 Optional Chaining이란 무엇일까요?? 옵셔널을 연달아서 호출하는 것을 의미해요. 여기서는 두 가지만 기억하시면 돼요! 첫번째, 옵셔널 체이닝의 결과는 옵셔널이다. 두번째, optional chaining에 포함된 표현식 중에서 하나라도 nil을 return한다면, 이어지는 표현식을 평가하지 않고 nil을 return 한다. 첫 번째부터 확인해봅시당 struct Contacts { var email: [String: String] var address: String } struct Person { var name: String ..
서연(linda)
린다의 iOS 공부기록