program tip

iOS 5 모범 사례 (릴리스 / 보존?)

radiobox 2020. 8. 3. 08:35
반응형

iOS 5 모범 사례 (릴리스 / 보존?)


초기 iPhone 프로그래머로서 iOS 5 또는 이전 버전에서 사용할 앱을 작성하는 가장 좋은 방법은 무엇입니까? 특히 데이터의 릴리스 / 보존을 계속 사용해야합니까, 아니면 무시해야합니까? 그게 그렇게 중요한 건가?


그것은 당신에게 달려 있습니다. ARC (Automatic Reference Counting)를 사용하여 앱을 작성할 수 있으며 Xcode는 "글루 코드"를 작성하여 ARC 지원 앱을 iOS 4에서 실행할 수 있도록 수정하지 않아도됩니다. 그러나 특정 기능이 작동하지 않으며 사용하려는 대부분의 라이브러리에서 수많은 오류가 발생하며 개발자가 ARC와 호환되는 업데이트를 릴리스 할 때까지 해당 라이브러리를 사용할 수 없습니다.


편집 : 최근에 파일별로 ARC를 끌 수 있음을 발견했습니다. pixelfreak 의 답변을 참조하십시오 . 따라서 제 충고는 여전히 유효하지만 이제 ARC와 함께 작동하기 위해 타사 라이브러리를 업데이트 할 필요가 없습니다.

특정 파일에 대해 ARC를 거부하는 것에 대해 Apple이 말한 내용은 다음과 같습니다.

ARC를 사용하기 위해 프로젝트를 마이그레이션하면 -fobjc-arc 컴파일러 플래그가 모든 Objective-C 소스 파일의 기본값으로 설정됩니다. 해당 클래스에 대해 -fno-objc-arc 컴파일러 플래그를 사용하여 특정 클래스에 대해 ARC를 비활성화 할 수 있습니다. Xcode의 대상 빌드 단계 탭에서 소스 컴파일 그룹을 열어 소스 파일 목록을 표시하십시오. 플래그를 설정하려는 파일을 두 번 클릭하고 팝업 패널에 -fno-objc-arc를 입력 한 다음 완료를 클릭하십시오.

여기에 이미지 설명을 입력하십시오

여기 에서 전체 전환 가이드를 참조 하십시오 .


개별 파일에서 ARC를 끄는 방법에 대해 여전히 궁금한 사람은 다음과 같습니다.

  1. 아래의 프로젝트 설정으로 이동하십시오. Build Phases > Compile Sources
  2. ARC를 비활성화 할 파일을 선택하고 -fno-objc-arc 컴파일러 플래그를 추가하십시오 . 파일을 선택한 다음 "Enter"키를 누르면 한 번에 여러 파일에 대한 플래그를 설정할 수 있습니다.

이것이 권장되는 방법인지 모르겠지만 나에게 효과적입니다.

PS : 나는 clang.llvm.org에서이 정보 수집 여기 이렇게하지 NDA에서 공개적으로 액세스 할 수 있습니다.


iOS 5는 여전히 NDA 상태이며 공개 버전을 출시 할 때까지있을 것입니다. 개발자 계정이 있다면 Apple 개발자 포럼으로 가서 문의하십시오.

이전 버전의 경우 참조를 세고 그에 따라 유지 및 해제해야합니다. 메모리 관리 설명서를 확인하십시오 .

편집 : 여기의 자동 참조 카운팅을위한 공공 스펙 과에서 인용 한 공공에서 iOS 5 페이지 :

Objective-C의 ARC (Automatic Reference Counting)는 메모리 관리를 컴파일러의 작업으로 만듭니다. 새로운 Apple LLVM 컴파일러를 사용하여 ARC를 활성화하면 유지나 해제를 다시 입력 할 필요가 없으므로 개발 프로세스를 대폭 간소화하면서 충돌 및 메모리 누수를 줄일 수 있습니다. 컴파일러는 객체를 완전히 이해하고 더 이상 사용하지 않는 즉시 각 객체를 해제하므로 예측 가능하고 부드러운 성능으로 앱이 그 어느 때보 다 빠르게 실행됩니다.


세부 사항은 현재 NDA에 따라 밝거나 밝지 만 Apple은 http://developer.apple.com/technologies/ios5/에 설명 된대로 iOS 5에서 자동 참조 계산 (ARC)을 구현했습니다.

iOS 5 SDK를 사용하여 Xcode 4에서 새 앱을 개발하는 경우 보유 / 릴리스 계산을 무시해도됩니다.

sudo rm -rf는 좋은 지적이다. 타사 라이브러리가 크게 영향을받을 수 있음


아무도 SystemConfiguration.framework를 언급하지 않았 습니까? 그것을 Frameworks 에 넣는 것을 잊지 마십시오 . 나는 그것을 깨닫기 위해 비참하게 몇 시간을 보냈다.


확실히 개발자 또는 팀의 선택입니다. ARC (Automatic Reference Counter)는 메모리를 자동으로 관리하여 작업을 조금 더 쉽게 만들어줍니다. 적절한 경우 릴리스, 유지 및 할당 해제합니다. 테스트 응용 프로그램에서 메모리를 직접 관리하지 않은 경우 자신이 직접 경험을 쌓아야한다고 생각합니다. 고려해야 할 또 다른 사항은 응용 프로그램이 타사 라이브러리에 의존하는지 여부입니다. ARC로 변환하지 않으면 응용 프로그램이 컴파일되지 않습니다. 선택은 당면한 상황에 따라 달라집니다.


프로젝트 설정> 빌드 단계> 소스 컴파일에서 플래그를 -fno-objc-arc로 설정하십시오.

참고 URL : https://stackoverflow.com/questions/6308425/ios-5-best-practice-release-retain

반응형