목록ios (27)
momodudu.zip
약 6개월전, 처음으로 swift를 공부하면서 스쳐지나가듯이 본 구절이 있었다. "Swift에서 class는 reference Type이고, struct는 value Type이다." 그냥 스쳐지나가듯이 본거여서 그러려니, 했었다. 그러다가 오늘 코드를 짜다가 이런 문제(?)가 발생하게 됐는데.. class SomeClass: NSObject { func setItem(_ item: Int) { _item = item } var _item: Int } func test() { var itemList = [SomeClass]() var count: Int = 0 for _ in 1...10 { let someObj = SomeClass() somObj.setItem(count) itemList.append(..
아 정말 이거때문에 옵씨 코드를 처음 접했을때 진짜 멘붕이었다... 맨날 닷 신택스로 메소드를 불러왔던 나로서는 별 희안하게 메소드를 호출하는 옵씨 문법에 적응하기 진짜 힘들었다... Objective-C는 일반적으로 이제까지 내가 생각해왔던 '함수 호출'의 개념을 '메세지 전송' 이라고 부른다. c++을 예로 들면, 어떤 객체에 대한 메소드를 instance.function(paramter)의 형식으로 호출하게 되면 instance에 딸리는 메소드를 호출하기 전에 현재까지 진행한 곳의 주소를 스택에 넣어놓고 함수를 처리한 후 다시 원래 루틴으로 돌아온다. Objective-C의 경우, 어떤 메소드를 호출하게 되는 이 과정은 3가지 구성요소로 이루어진다. sender/receiver/message. se..
API 개발을 하다보면 작성한 API들을 어떻게 사용하는지 명세를 해주는 문서가 하나쯤은 있어야 한다. 하나하나 만들면 API function이 추가할때마다 계속 업데이트해줘야 하고.... 매우 귀찮은 일이다. 이를 support해주는 아주 좋은 툴을 소개해볼까 한다. https://github.com/realm/jazzy realm/jazzy Soulful docs for Swift & Objective-C. Contribute to realm/jazzy development by creating an account on GitHub. github.com ObjectiveC로 이루어진 프로젝트, Swift로 만들어진 프로젝트, 뿐만 아니라 Swift+옵씨로 이루어진 프로젝트도 모두 지원해준다:-) 일단..
Swift에서는 기본적으로 app 내의 메모리 관리를 지원한다. java의 GC처럼.. 사실 C++ 개발자였고 smart pointer는 특별한 경우외에는 쓰지 않았기 때문에 이와 같은 GC 개념은 오히려 나한테 더 어렵다 -.-; 간단하게 요약하자면, Swift에서의 ARC는 - class와 같은 레퍼런스 타입에만 적용된다. - ARC 자체적으로 instance 내의 각 Property가 얼만큼 referencing되는지 tracking한다. - 이를 위해 strong reference를 사용한다. 1. ARC Action var reference1: Person? = Person() var reference2: Person? 위와 같은 코드의 경우, ref1,2 둘다 Person의 optional t..