iOS 4.3미만 또는 macOS 10.6(Snow Leopard) 이하의 버전에서는 ARC를 사용 할 수 없기때문에 해당 버전을 지원해야하는 프로그램 또는 어떤 사정에 의해서 ARC를 사용하지 않는 프로그램에서는 메뉴얼로 메모리 관리를 해주어야한다.(Menual Retain Count) 이 정리는 어디까지나 프레임워크에서 객체의 라이프사이클의 동작을 보기위함이므로 MRC에 대해서 자세하게 기입해놓지는 않음.1. Cocoa Framework에서의 기본적인 메모리 관리 룰a) 생성하는 모든 객체에 대해 소유권을 갖는다.b) "reatin"을 이용하여 객체의 소유권을 획득 할 수 있다.c) 더 이상 필요하지 않으면 소유하고 있는 객체의 소유권을 내주어야 한다.d) 소유하고 있지 않은 객체의 소유권은 내주어선..

Swift에서 각종 기본컨트롤러를 이용하다보면 Delegate를 확장하고싶을때가 있다. 예를들면.. UITableView의 Delegate는 UITableViewDelegate라는 Protocol이고, UITableView는 UIScrollView를 상속받는다. UITableViewDelegate는 UIScrollViewDelegate라는 프로토콜을 따르며, 거기에 자신만의 요구하는 함수 프로토콜을 가지고있다. 그렇다면 저 UITableView처럼 UITableView를 상속받는 뷰컨트롤러를 만들고 UITableViewDelegate를 따르는 프로토콜을 만든 후 delegate를 그 프로토콜로 바꿔주면 되는거 아닌가?!?! import Foundation import UIKit protocol MyTab..

Widget Extension을 만들다보면 만나게되는 getTimeline 이라는 함수이다. 위젯을 갱신해주는 주기를 관리해주는 함수이며, entry에 들어있는 entryDate의 지정된 시간에 해당 엔트리로 값이 바뀌며, 모든 엔트리가 다 사용되면 다시 getTimeline함수를 호출한다 (timeline의 policy가 .atEnd일 경우) 즉 함수이름대로 타임라인을 다시 얻음 그렇다면 나는 위의 코드에서는 0초,1초,2초,3초,4초 마다 엔트리가 갱신되고 그 후에는 getTimeline 함수가 호출될것이라 예상했다. 하지만 정상작동을 하지 않음.. 어떻게 작동하냐면.. 1초마다 entry의 갱신은 정상적으로 이루어진다. 하지만 getTimeline함수는 바로 호출되지 않는다. 그리고 1분이 지나니까..
- Total
- Today
- Yesterday
- associated type
- Gitlab Runner
- cd
- swift
- SwiftUI
- iOS Mnemonic
- flatMap
- arc
- iOS 니모닉
- cicd
- Secure Enclave
- 순환참조
- iOS wallet
- XCodeGen
- widget extension
- 니모닉
- Delegate
- Objective-C
- Fastlane
- Protocol
- Tuist
- ios
- isSecureTextEntry
- module map
- XCode Cloud
- CI
- Swift 니모닉
- firebase distribution
- modulemap
- RxSwift
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |