코테 문제 풀어보다가 2차원 배열의 합을 구해야하는 문제가 있었다.나는 이중 for문 돌려서 풀었는데 다른 사람 풀이에 zip 연산자를 사용한게 있어서 알아보려고 한다! "두 개의 기본 시퀀스로 구성된 쌍의 시퀀스를 생성합니다." ⬇️아래는 공식문서 예제let words = ["one", "two", "three", "four"]let numbers = 1...4for (word, number) in zip(words, numbers) { print("\(word): \(number)")}// Prints "one: 1"// Prints "two: 2"// Prints "three: 3"// Prints "four: 4"두 원소가 항상 짝을 짓고 있네용 만일 둘의 길이가 달라 쌍이 맞지 않다면?l..
배열을 돌 때 우리는 index 정보도 같이 필요한 경우가 있다.이때 enumerated를 사용하면 된다! 리턴 값은 시퀀스가 리턴된다고 합니당 사용법은 아래와 같다. 1. for-in 반복문let array = ["one", "two", "three"]for (index, value) in array.enumerated() { print("index: \(index), value: \(value)")}// Prints "index: 0, value: one"// Prints "index: 1, value: two"// Prints "index: 2, value: three" 2. forEach 반복문let array = ["one", "two", "three"]array.enumerated()..
import UIKit// final > 클래스는 구조체 보다 느림 왜? 동적 디스패치 때문에, 테이블 디스패치가 일어나기 때문에// final을 붙이면 더 이상 상속을 못하게 막으면서 메서드가 다이렉트 디스패치가 이루어 지도록 하는 것임final class ViewController: UIViewController { // MARK: - 이메일 입력하는 텍스트 뷰 // lazy 없이 그냥 선언하면 메모리에 동시에 올라가기 때문에 // addSubView하려면 메모리에 emailTextField,emailInfoLabel가 먼저 올라간 후에 return view에 올라가야함 private lazy var emailTextFieldView: UIView = { le..
Code Snippets Library 접근 방법1. 소스 > 우클릭 > Create Code Snippet2. 상단 메뉴 > Editor > Create Code Snippet3. Shift + Command + L ""안에 원하는 내용 입력하면 오른쪽 사진처럼 placeholder가 완성됨Completion에다 원하는 문구 입력해주면 됨 mark 치면 아래와 같이 편하게 사용할 수 있음!
확인, 취소 let alert = UIAlertController(title: "비밀번호 바꾸기", message: "비밀번호를 바꾸시겠습니까?", preferredStyle: .alert)let success = UIAlertAction(title: "확인", style: .default) { action in print("확인버튼이 눌렸습니다.")}let cancel = UIAlertAction(title: "취소", style: .cancel) { action in print("취소버튼이 눌렸습니다.")} alert.addAction(success)alert.addAction(cancel) // 실제 띄우기self.present(alert, animated: true, co..
어떤 함수가 실행됐는지 알 수 있음print(#function) 대부분 extension 사용해서 구현(코드가 섞이기 때문)extension ViewController: UITextFieldDelegate { // 구현} 텍스트 필드 키보드 올라오게 설정(사용자 유도)// 최초응답자 설정(responder) (뷰마다 특성이 조금 다름) (UIResponder)// 전체화면이 터치를 입력받을 수 있는 상태 ==> 텍스트필드가 가장 먼저 입력받는 상태// 키보드가 올라옴 (손가락 터치로 직접 최초응답자 설정도 가능)textField.becomeFirstResponder() 텍스트 필드에 제한을 주고 싶을 때(ex 글자 수, 숫자 제한 등등)// 텍스트필드에 글자내용이 (한글자 한글자) 입력되거나 지워질..
autolayout레이아웃을 자동으로 계산해준다! 핵심1. 뷰의 위치- 가로 [x축]- 세로 [y축]- 앵커로 제공 2. 뷰의 크기- 가로, 세로- 앵커기반 스크린사이즈로 뷰의 크기 제공가능 위치 + 크기 -> autolayout -> 화면 렌더링 앵커를 왼쪽, 오른쪽에 설정하고 고정 너비를 주면 오류,,왜냐! 앵커를 기준으로 계산해서 그리는데 고정 너비 값 때문에 충돌이 나기 때문임 코드로 autolayout 설정하기 예시// ⭐️ 필수: 자동으로 autolayout 설정해주는 옵션 꺼주기myView.translatesAutoresizingMaskIntoConstraints = false// 최상위 view로 부터 top: 30, leading: 15, trailing: 15 띄우고 고정 height..
📌 Xcode 13 이후 부터 아래와 같이 사용할 수 있음 ✔️ imageLiteral "#imageLiteral" 이렇게 치고나서 "(" 소괄호까지 쳐주면 이렇게 이미지 아이콘이 나오게 됨 그림 아이콘 클릭해주면 asset에 있는 이미지를 볼 수 있음 ✔️ colorLiteral color도 동일하게 "#colorLiteral" 치고나서 "(" 소괄호까지 쳐주면 됨 그림 아이콘 클릭하면 색깔 선택할 수 있고, Other... 버튼 누르면 오른쪽 사진과 같이 더 다양한 방법으로 색깔 지정할 수 있음 전) 후) 코드로 봤을 때 보다 더욱 직관적이게 확인할 수 있음!!!