목록ios/Swift (11)
momodudu.zip
Swift에서 Protocol이란 말 그대로 일종의 "약속"이라고 보면 된다. Language guide에 따르면, 특정 task나 기능등을 만족시키라고 요구사항을 작성하는 blueprint라고 정의되어 있다. 간단하게 말하자면, 이러이러한 기능이나 property를 꼭 구현해라. 라고 정의하는 것이다. protocol은 class, struct, enum에 사용할 수 있다. Protocol의 Syntax protocol SomeProtocol{ // some definitions } struct SomeStrcut: SomeProtocol{ } protocol keyword로 프로토콜을 정의하고, 상속하듯이 protocol을 conformation하겠다고 명시해준다. Protocol의 Requireme..
Swift에서는 기존에 존재하던 Class, Struct, Enum type등에 대해 추가적인 기능을 덧붙여서 사용할 수 있다. 예를 들어, Numeric structure type인 Int에 추가적인 커스터마이징을 할 수 있다. 이를 Extension 이라고 한다. 추가할수 있는 것에 대해는 종류가 있는데, - Computed instance property / Computed type property - Instance method / Type method - new initializer - subscript define - 새로운 nested type 정의 - 기존에 있던 type을 특정 프로토콜을 준수하도록 정의 protocol에 대해서는 아직 설명하지 않았으므로, 나머지에 대해서 정리해보고자 한..
Optional chaining 이란, 사용하고자 하는 property, method, subscript등이 사용이 가능한지? 를 묻는거라고 보면 된다. 처음에 swift 가이드를 읽었을 땐 번역만으로 봤을때는 진짜 잘 안와닿는 개념이었다. 예제를 이해하고 나면, 진짜 그냥 그 변수를 쓸수 있는지 없는지를 체크하는거라고 보면 된다. class Person{ var residence: Residence? } class Residence{ var numberOfRooms = 1 } 위와 같이 정의된 클래스가 있다고 했을 때, var john = Person() 이렇게 john이라는 instance를 사용하고자 한다. Person class는 Residence를 optional 형태로 가지고 있다. 그래서 따..
initialization은 별거 없는줄 알고 그냥 대충 읽고 넘기려고 했는데 ... 읽다보니까 이것저것 복잡한게 많아서 정리해본다. Swift에서 Initialization은 value type, referecne type 둘 다 initialize가 가능하다. value type의 경우는 상속이 불가능하므로, 그냥 기본 initializer를 생각하면 별로 어렵지 않다. 본 글에서는 reference type, 즉 class에서의 초기화에 대해서 적어본다. 기본적으로 class는 반드시 모든 stored property에 대해서 반드시 initialize되어야 한다. 초기화를 하는 방법에는 앞서 몇번 언급했던 것 처럼 default value를 주어서 초기화를 하는 방법이 있고, Initializer..