일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 그리디 알고리즘
- Kotlin
- Algorithm
- error
- ios
- 오토레이아웃
- 공부
- 정렬
- 안드로이드 공부
- 파이썬 풀이
- iOS개발
- swift
- SwiftUI
- Android
- dfs
- Clean Architecture
- 파이썬
- Level 1
- Swift공부
- 백준 온라인 저지
- 앱개발
- UIKit
- 알고리즘
- Python
- Autolayout
- 알고리즘 공부
- BFS
- 백준온라인저지
- greedy algorithm
- 프로그래머스
- Today
- Total
목록전체 글 (88)
Tori의 개발 공부
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cnUSvE/btsdhB7Yeyj/KWfc2iK5fJLdGU661kvYx1/img.png)
UserDefaults란? 앱 실행 시 지속적으로 키-값 쌍을 저장하는 사용자의 기본 데이터베이스에 대한 인터페이스이다. 런타임 환경에서 동작하면서, 앱이 실행되는 동안 default database에 접근해 데이터를 기록하고 가져오는 역할을 한다. 싱글톤 패턴으로 설계되어 앱 전체에서 단 하나의 인스턴스만 존재함 데이터 저장 open func set(_ value: Any?, forKey defaultName: String) 함수를 사용한다. set함수에는 String, Double, Int 등 value 매개변수에 다양한 타입이 있지만, 데이터를 저장할 때에는 저장 가능한 타입 형식이라면 어떤 값을 입력해도 오류가 발생하지 않는다. Int, Float, Double, Bool, URL? 같은 공통 유..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/rnmGe/btsdlrqeV88/7hg7HnkWMRlzb4gNCRnTUK/img.png)
프로토콜이란 프로토콜 : 특정 역할을 하기 위한 메서드, 프로퍼티, 기타 요구사항 등의 청사진을 정의하는 것 정의해 둔 프로토콜을 실제 구조체 클래스 등에서 채택을 해 해당 요구사항을 정의한다. -> 이를 '해당 프로토콜을 준수한다'라고 표현 프로토콜을 준수하기 위해서는 요구사항을 모두 구현해야 한다. 프로토콜은 정의를 하고 요구사항을 제시만 할 뿐 스스로 기능을 구현하진 않는다. 프로토콜 구현 protocol 프로토콜이름{ 프로토콜 정의 } 프로토콜 채택 타입 명: 프로토콜 이름 형태로 사용 여러 개 채택 시 콤마로 구분 지어 사용 만약 클래스에서 프로토콜을 채택할 때, 다른 클래스를 상속받는 클래스라면 상속받을 클래스 이름 다음에 채택할 프로토콜을 나열함 ex) class A : 상속 클래스, 프로토..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/wTWQ4/btsdpbglQHi/P4TEwgn64T5zlWkK3XyTP1/img.png)
타입 캐스팅이란? 일반적으로 타입 캐스팅의 의미는 형변환으로 다른 형태의 자료형으로 변환하는 것을 의미한다. swift의 특징 중 하나는 데이터 타입의 안전을 위해 각기 다른 값 교환을 엄격히 제한한다. -> 다른 언어에서 지원하는 암시적 데이터 타입 변환을 지원하지 않는다. var num :Double = 3.3 var convertedNum:Int = Int(num) convertedNum = 5.5 //오류 발생 다른 언어에서는 5.5를 대입시 Double -> Int로 암시적 형변환이 이루어져서 대입되므로 오류가 발생하지 않지만 스위프트에서는 오류가 발생한다. 스위프트에서 Int(num)부분은 타입을 변환한 것이 아니라 Int의 이니셜라이저를 통해 기존 값을 전달받아 새로운 Int구조체의 인스턴트..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/b5g3wT/btsdeIl170H/fWqQsLh22kyzqiwY3bmdG1/img.png)
실행 결과 버튼을 통해서 이미지를 추가하고 추가한 이미지를 화면에 띄워준다. 레이아웃 상단에 네비게이션 바를 추가해 주고, add형식의 바버튼을 추가해 준다. 화면 중앙에는 UIImageView를 추가한다. 아웃렛 변수 및 액션 함수 추가 1. 선택한 이미지 뷰를 출력해 주기 위해 이미지 뷰의 아웃렛 변수 연결한다. 2. 버튼을 통해 이미지 추가 동작을 실행할 것이므로 버튼에 액션 함수를 연결한다. Add 버튼 @IBAction func addBtnClick(_ sender:UIButton){ let alert = UIAlertController(title: "Title", message: "message", preferredStyle: .actionSheet) let library = UIAlertAc..