The current deployment target does not support automated __weak references


iOS 5.0 이상에서 지원하는 ARC 를 사용하여 어플을 만들다 보니 ARC 는 무척 편하더군요. 근데 iOS5.0 이전 버전들을 지원하려면 어떻게 해야 할까 고민하다 인터넷을 뒤져보니.. 어느 멋진 분이 벌써 만들어놨네요. 


PLWeakCompatibility 를 다운받아 압축을 풀고



  1. PLWeakCompatibilityStubs.m 이 파일을 프로젝트에 넣어주세요 (전 h 파일도 같이 넣어줬어요)
  2. 그리고 xCode Target Settings 에 있는 Other C Flags 값을 -Xclang -fobjc-runtime-has-weak 로 바꿔주시면 됩니다.



타겟 클래스에 -release 와 -dealloc 을 적절히 섞어 넣어 주는 형식이라고 합니다. 디폴트로 PLWeakCompatibility 는 __weak 핸들링을 위해 MAZeroingWeakRef 를 사용합니다. MAZeroingWeakRef 를 사용하고 있다면, 있는걸 쓰겠지만, 없다면 내부적으로 알아서 처리하기 떄문에 뭐 그것도 상관은 없다고 하네요.


테스트 해보니 일단 위의 오류들은 깨끗하게 없어지네요. 작동을 잘 한다는 뜻이겠지요?


저작자 표시
신고

posted by youp_han matrim



티스토리 툴바