일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Apple Developer Academy
- 프론트엔드
- iOSDeveloper
- globalcommunity
- TypeScript
- react-query
- 코딩테스트
- git
- 알고리즘
- ios
- Xcode
- AppleDeveloperAcademy
- SWIFT
- JavaScript
- react
- 회고
- 프로그래머스
- swiftUI
- 코딩테스트실력진단
- error
- Front-end
- frontend
- UIKit
- 자바스크립트
- 프로젝트
- velog
- NextJs
- tshaped
- 코드트리챌린지
- 코드트리
- Today
- Total
목록UIKit (7)
Moon Work

SwiftUI에서 화면 캡쳐하기최근에 하는 프로젝트에서 image를 만들어서 instagram으로 공유하는 기능을 구현해야 했다. 먼저는 화면의 이미지를 image로 렌더해야 하는 기능을 구현해야 해서 UIGraphicsImageRenderer를 활용한 캡쳐 기능을 구현하였다. 구현 순서1. Target으로하는 View를 구현한다.해당 뷰를 그대로 이미지로 만들기 때문에 따로 View를 만들거나 아래와 같이 바뀌는 내용이 없다면 extension에 computed property로 구현해도 된다.// 렌더해야 하는 뷰extension RendererTestView { private var TargetImageView: some View { ZStack{ Color.w..

Codable: type alias Codable is a type alias for the Encodable and Decodable protocols. When you use Codable as a type or a generic constraint, it matches any type that conforms to both protocols. Coadable은 Encodable과 Decodable을 합친 Union Type이다. 정의 typealias Codable = Decodable & Encodable Decodable: Protocol A type that can decode itself from an external representation. Decodable은 외부 표현을 자신으로 변환..

시작하며UIKit으로 앱을 만드는 강의를 들으면서 class를 singleton으로 만들어서 작업하는 것을 배웠다. 대충 어떤 느낌인지는 알 것 같은데 왜 Singleton으로 사용하는지 Singleton이 무엇인지 다시 정리하려고 기록해두려 한다. Singleton 이란싱글톤 패턴은 어떤 용도로 객체를 생성하는데 여러 인스턴스가 아닌 하나의 객체를 공용으로 사용하는 디자인 유형이다. 아래와 같이 코드가 있는 경우 각각의 컨트롤러에서 저장되는 정보들이 다른데 이 정보를 서로 보내줘서 하나의 정보를 만들 생각을 하니 벌써 피로해진다. 이럴 때 하나의 인스턴스만 만들어 둔 뒤 타입 변수로 두어 어디서든 공동된 객체에 접근하게 하면 이런 정보 전달에 대한 피로감을 줄일 수 있다. /*Singleton X3개..

시작하며 Swift를 공부하면서 콘텐츠가 풍부한 유튜버마냥 하루에도 몇번이나 에러가 뜬다. 블로그에 쓸 내용이 마를 일은 없을 듯 하다. 간단한 Weather 앱을 만들기 위해 비동기로 Open Weather를 통해 데이터를 받아왔다. 받아온 데이터를 그대로 IBOutlet으로 연결된 label의 text에 담는 과정에서 위와 같은 에러가 발생했다. 즉, UI을 새로 그리는 과정에서 에러가 발생했다. import UIKit class ViewController: UIViewController { @IBOutlet weak var countryLabel: UILabel! @IBOutlet weak var regionLabel: UILabel! @IBOutlet weak var currentTempLabel..

문제 CoreData를 활용해서 데이터를 저장하는데 아래와 같은 에러가 발생하였다. Exception NSException * "keypath data not found in entity _" 해결 1. ViewController에서 주석을 달면서 체크한 결과 CoreData와 통신하는 싱글톤 클래스에서 문제가 발생한 것을 확인했다. 2. MemoData라는 entity의 속성의 date 속성이 있었는데 날짜에 따라 코어데이터에서 가져오는 코드에서 오타가 발생하였다. (date -> data) let dataOrder = NSSortDescriptor(key: "data", ascending: false) request.sortDescriptors = [dataOrder] 적용 코어 데이터에서 keypa..

문제 storyboard에서 아울렛으로 table view를 드래그해서 연결하려는데 해당 ViewController가 연결되지 않았다는 에러가 발생했다. 우측 Identity Inspector에서 연결된 클래스를 확인해도 정상적으로 연결되어 있었다. 해결 cmd + B로 리빌드 후 재시도 결과 정상적으로 연결되었다. 참고 https://developer.apple.com/forums/thread/76730 Can't connect outlets in IB | Apple Developer Forums I'm using a storyboard for a project I've been working on for sometime. A couple of days ago I added a new label to ..

시작하며 기본적으로 iOS에서는 ARS(Automatic Reference Counting)을 통해 클래스의 인스턴스가 얼마나 많이 참조(retain)을 받고 있는지를 추적한다. 만약 어떤 인스턴스도 해당 객체를 참조하고 있지 않다면 자동으로 메모리에서 해제한다. 하지만 두개 이상의 인스턴스가 서로를 강하게 참조하고 있는 순환(cycle)이 발생한다면 어떤 인스턴스를 메모리에서 해제하려해도 다른 인스턴스가 참조하고 있는 상황이라 해제가 불가능하게 된다. 이를 위해 Swift에서는 strong, weak, unowned 세가지 방식으로 참조를 가능하게 하여 이러한 순환 참조가 일어나지 않게 방지할 수 있는 기능을 제공해주었다. Strong - 강한 참조 기본적으로 서로의 인스턴스끼리 참조가 이루어지면 강한..