본문 바로가기
[Effective Objective-C] #33 weak 참조를 사용하여 리테인 순환을 피하라 [Effective Objective-C] #33 weak 참조를 사용하여 리테인 순환을 피하라 출처 : Effective Objective-C -객체들끼리 서로를 어떠한 방법으로 참조하여 순환을 이루고 있는 객체 그래프(object graph)에서 순환이 발생하는 것을 흔히 볼 수 있다.순환이 발생하면 특정 지점에서 메모리 누수가 발생할 것이다.순환을 이루는 모든 객체가 결국엔 순환 밖에 있는 객체들에 의해 참조되지 않기 때문이다.그렇게 되면 순환 내의 객체에 접근할 수 있는 방법이 더는 없게 된다.그뿐 아니라 순환 내의 객체들은 서로를 할당 해제하지 않을 것이다.서로가 서로를 살아 있게 유지하기 때문이다. -리테인 순환 중 가장 간단한 것은 객체 두 개가 서로를 참조하는 것이다. -리테인 순환 내의 .. 2017. 9. 27.
[Effective Objective-C] #31 참조를 릴리스하고 관찰 상태(observation state)를 정리하는 일은 dealloc 메서드에서만 하라 [Effective Objective-C] #31 참조를 릴리스하고 관찰 상태(observation state)를 정리하는 일은 dealloc 메서드에서만 하라 출처 : Effective Objective-C -생애 주기가 끝난 객체는 할당 해제되고 dealloc 메서드가 호출될 것이다.이 메서드는 객체의 생애 주기 동안 리테인 수가 0으로 떨어질 때 딱 한 번 호출된다.호출되는 시점은 보장되지 않는다. 그렇지만 리테인과 릴리스가 있는 코드를 살펴보고 언제 호출될지 예상할 수 있다고 생각할 수도 있다.그러나 실제로는 여러분이 모르는 사이에 어떠한 라이브러리라도 객체를 조작할 수 있다.이는 예정되지 않는 시점에 할당 해제가 일어나게 하는 원인이 될 수 있다. -절대로 dealloc 을 직접 호출하면 안 된.. 2017. 9. 24.
[Effective Objective-C] #30 ARC 를 사용하여 reference count 를 쉽게 만들라 [Effective Objective-C] #30 ARC 를 사용하여 reference count 를 쉽게 만들라 출처 : Effective Objective-C -Clang 컴파일러 프로젝트(맥 OS X 와 iOS 개발에 사용되는 컴파일러 프로젝트)는 문제가 있는 참조 세기의 위치를 가리킬 수 있게 정적 분석기를 도입했다.이 정적 분석기를 통해 메모리 누수가 있다고 알려줄 수 있다.어디에 메모리 관리 문제가 있는지도 알려줄 수 있다.이것이 ARC 가 만들어진 배경이다. -ARC 는 이름이 말하는 그대로의 일을 한다.즉 reference counting 을 자동으로 한다.그래서 이전 코드 조각에서는 release 등을 써 주던 것을 이제는 하지 않아도 ARC 가 알아서 추가해준다. -ARC 를 사용할 때.. 2017. 9. 23.
[을지로 맛집] 태국음식점 JumBo 6 (점보 식스) 로 회식하러 갔수당 [을지로 맛집] 태국음식점 JumBo 6 (점보 식스) 로 회식하러 갔수당 시작 : 0840끝 : 0857 iOS 개발 파트에 있을 당시 회식 갔던 이야기입니다.이 장소는 정10 M 가 회식장소로 괜찮다고 추천해줘서 알게 되었는데요.회사 근처에 위치해 있으며, 태국음식을 파는 곳이었습죠. 씩씩하게 입장하는 Colleague 들 ㅋㅋ 메뉴입니다. 우선 Chang, Singha 맥주부터~태국에 있을 때 노상 술집 테이블에 항상 올려져 있던 친숙한 비쥬얼의 병들 ㅋㅋ 저는 술을 그렇게 좋아하는 편은 아니라, 맛을 잘 모르는 관계로어떤게 맛이 좋았다 뭐 이런 알지 못하면서 씨부리는 것은 하지 않도록 하겠습니다. ㅋ 2층에 위치한 식당인데 테이블은 그래도 적당히 있습니다.다만, 안쪽은 창문이 없어서 좀 답답할 수.. 2017. 8. 12.
[Effective Objective-C] 목차와 요약을 통해 한 눈에 알아보는 Effective Objective-C #1 ~ #8 [Effective Objective-C] 목차와 요약을 통해 한 눈에 알아보는 Effective Objective-C #1 ~ #8 #1 : Objective-C 의 기원과 친숙해져라. Objective-C는 객체 지향 기능을 추가한 C 의 확장이다. Objective-C는 동적 바인딩을 사용하는 메시징 구조를 이용한다. 동적 바인딩은 객체 타입이 실행 시간에 밝혀지는 것을 뜻한다. 메시지를 받았을 때 동작할 코드를 컴파일러가 아닌 런타임이 결정한다. C의 핵심 개념을 이해하고 있으면 Objective-C를 효과적으로 작성하는 데 도움이 된다. 특히 메모리 모델과 포인터를 잘 이해하고 있어야 한다. #2 : 헤더에 헤더를 포함하는 것을 최소화하라 항상 헤더를 포함하는 것을 최대한 미루라. 이는 보통 헤.. 2017. 8. 10.
[Effective Objective-C] #6 프로퍼티를 이해하라 [Effective Objective-C] #6 프로퍼티를 이해하라 출처 : Effective Objective-C -프로퍼티는 객체가 포함한 데이터를 캡슐화하는 방법을 제공하는 Objective-C 의 기능이다. -인스턴스 변수는 항상 접근자 메서드(accessor method)를 통해 접근한다.Objective-C 2.0 배포판에 프로퍼티라는 기능으로 포함되었다.이 기능으로 개발자는 접근자 메서드들을 자동으로 생성하라고 컴파일러에 알려줄 수 있다.프로퍼티는 점(.) 문법이라는 새로운 방법을 제공한다.점 문법 덕분에 클래스에 저장된 데이터에 접근하는 방법이 좀 덜 장황해졌다. -@interface EOCPerson : NSObject{@public NSString *_firstName; NSString.. 2017. 7. 27.
[Objective-C] Constant(상수) 정의하기 [Objective-C] Constant(상수) 정의하기 http://stackoverflow.com/questions/17228334/what-is-the-best-way-to-create-constants-in-objective-chttps://soulpark.wordpress.com/2012/08/02/objective_c_static_variable/ -Internal & Single class 용으로 상수를 정의한다면 static const 를 넣어준다. -Single class 에서 정의되지만 외부에서도 사용하는 public 개념의 상수를 만든다면extern 을 사용하면 된다. // headerextern NSString *const kConst; // implementationNSString.. 2017. 7. 23.
[iOS Study] 병렬 프로그래밍 가이드 ( operation queue ) [iOS Study] 병렬 프로그래밍 가이드 ( operation queue ) https://developer.apple.com/library/ios/documentation/General/Conceptual/ConcurrencyProgrammingGuide/OperationObjects/OperationObjects.html#//apple_ref/doc/uid/TP40008091-CH101-SW1 Operation Object 에 대한 이야기 -Operation object 는 NSOperation class 의 인스턴스를 이야기한다.NSOperation class 는 abstract base class 로 subclass 를 구현해야 한다. -NSInvocationOperation 과 NSBlock.. 2017. 7. 2.
[iOS Study] 병렬 프로그래밍 가이드 ( 병렬 앱 디자인 ) [iOS Study] 병렬 프로그래밍 가이드 ( 병렬 앱 디자인 ) https://developer.apple.com/library/ios/documentation/General/Conceptual/ConcurrencyProgrammingGuide/ConcurrencyandApplicationDesign/ConcurrencyandApplicationDesign.html#//apple_ref/doc/uid/TP40008091-CH100-SW1 -전통적 방법으로의 복수개의 코어를 사용하는 방법은 여러개의 thread 를 만들어 사용하는 것이다.그러나 thread 를 사용한 코드는 scale 측면에서 좋지 않다.core 가 처리하기 좋은 thread 의 갯수를 아는 것도 쉽지 않고, thread 들을 효율적으.. 2017. 7. 1.
반응형