Lazy variables 이전의 글들을 보셨거나 스위프트 문법 공부를 해보신 분들이라면 스위프트에서 메모리는 굉장히 예민한 주제인 것을 알 수 있습니다. 저 역시 그렇게 느꼈고, 그런 예민함이 보다 메모리를 효율적으로 관리할 수 있는 방향으로 이어졌습니다. 오늘은 이러한 메모리와 관련된 문법 중 하나인 lazy에 대해 알아보도록 하겠습니다. 이전에 작성한 메모리 관리에 관한 글도 읽어보시기 바랍니다. [Swift] Retain cycle, weak, unowned 애플의 공식 문서에서는 이렇게 설명하고 있습니다. "A lazy stored property is a property whose initial value is not calculated until the first time it is used..
[번역] Retain Cycles, Weak, Unowned in Swift Memory Management, Retain Cycle 그리고 weak, unowned 키워드의 사용법은 약간은 혼란스러운 주제일 수 있습니다. 반대로 이 주제를 이해하는 것은 매우 중요합니다. 왜냐하면 Retain Cycle은 메모리 문제를 일으키는 주된 요인 중 하나이기 떼문입니다. 하지만 걱정하지마세요! 이 글에서는 당신이 필요한 모든 것을 배우게 될 것입니다. 참고 : 이 글은 Swift3과 ios10으로 업데이트 되었습니다. 원본 출처 Contents우리는 스위프트에서 메모리 관리에 대한 기본적인 것 부터 시작해볼 것입니다. 우리는 기본적으로 Retain Cycle이 무엇인지, 그리고 weak과 unowned 키워드를..
Protocol Basic To Advanced 저번 포스팅에서는 프로토콜의 기본적인 개념과 문법들을 살펴보았습니다. 이번 포스팅에서는 스위프트에서 프로토콜에 대한 심화된 내용과 이를 사용하는 이유, 더 나아가 POP (Protocol Oriented Programming)에 대해서도 살펴보는 시간을 갖도록 하겠습니다. 글을 읽기전에 먼저 숙지하고 계셔야할 주제들입니다. protocol - basic extension (추후 업데이트 예정) 만일 당신이 레이싱 게임을 개발한다고 상상해보세요. 당신은 자동차를 운전할 수도 있고 오토바이를 운전할 수도 있으며 심지어는 비행기도 조종할 수 있습니다. 객체지향적인 설계로 이러한 종류의 어플리케이션을 만들게 된다면 공통적인 기능들을 빼서 클래스를 만들고 이를 상속..
Closure - Capture List 저번 포스팅에서는 기본적인 문법부터 다양한 축약형의 문법 그리고 값으로써의 클로저를 알아보았습니다. 이번에는 클로저를 사용하면서 중요한 문법 중 하나인 Capture List에 대해서 알아보도록 하겠습니다. 글을 읽기전에 먼저 숙지하고 계셔야할 주제들입니다. Closure - BasicClosure는 Reference Type이다. 기본적으로 클로저는 Reference Type입니다. 이 포스팅에서는 Reference Type과 Value Type의 차이점을 설명하지 않습니다. 또한 클로저가 매개변수로 값을 넘기는 것이 아닌 단순히 클로저 바깥의 값을 사용할 때는 값을 복사하여 클로저 내부에 저장하고 사용하는 것이 아닌 해당 값을 참조하여 사용하게 됩니다. 이러한..
Protocol Basic Swift를 잘 다루고 여러 샘플 코드들을 정확히 이해하려면 protocol은 완벽히 익히고 있어야 한다고 생각합니다. 어떻게 보면 Swift의 강력한 기능 중 하나가 protocol이라고 생각됩니다. 그럼 지금부터 protocol에 대해서 천천히 알아가는 시간을 갖도록 하겠습니다. 애플의 공식문서에 정의된 protocol의 정의는 다음과 같습니다. "A protocol defines a blueprint of methods, properties, and other requirements that suit a particular task or piece of functionality." 직역하자면 다음과 같습니다. "protocol은 특정 작업 혹은 기능들을 구현하기 위한 메소..
Delegation Pattern 글을 읽기전에 먼저 숙지하고 계셔야할 주제들입니다. Protocol - basic Protocol - advanced someObjectProperty.delegate = self 많이 보셨던 모양이실겁니다. 프로토콜을 사용할 때, 특히 저는 TableView를 다룰때 가장 많이 접했던 것으로 기억이 됩니다. 이것이 무엇을 의미할까요? Delegation Pattern을 구글링해보시면 해석을 통해 시작하는 경우가 많습니다. 그 뜻은 직역하자면 위임하다 등의 의미로 해석이 됩니다. 쉽게 표현하자면 어떤 객체에서 일어나는 이벤트에 관한 혹은 어떤 객체에 뿌려줄 데이터에 관한 코드를 다른 객체에서 작성해주는 것을 말합니다. 즉 A객체의 일을 B객체에서 대신해주는 일을 위임하는..
Closure - Basic 클로저는 func 키워드와 함수의 이름이 없는 함수입니다. 흔히들 익명함수라고 불리기도 합니다. 이들은 이름이 없기 때문에 그들 스스로 호출을 할 수 없습니다. 기본 클로저 문법 { (매개변수 목록) -> 반환타입 in 실행 코드 } 함수 vs 클로저 Function 이름이 있다. func 키워드가 존재한다. in 키워드가 존재하지 않는다. Closure 이름이 없다. func 키워드가 존재하지 않는다. in 키워드가 존재한다. func giveFunc(){ ... } // function var giveNoFunc = {() ->in ... } // closure //call giveFunc() giveNoFunc() Function to Closure example fun..
- Total
- Today
- Yesterday
- oauth2.0
- Algorithm
- 테이블뷰
- storyboard
- Xcode
- nodejs
- TableView
- Protocol
- CRUD
- 스위프트
- 프로토콜
- 오토레이아웃
- 아이폰
- IOS
- iPhone
- edwith
- 백준
- UIControl
- 부스트코스
- 운영체제
- segue
- 알고리즘
- 클로저
- UIResponder
- Swift
- Operating System
- notificationcenter
- auto layout
- boostcourse
- Codable
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |