2012-02-22 1 views
4

ARC가없는 이전의 객관적인 C 코드를 ARC로 변환하려고합니다. 나는 Xcode와 같은 절차를 휴무 중입니다 : 파일> 편집> 리 팩터> ARC로 변환.이전의 객관적인 C 코드를 ARC (Automatic Reference Count)로 변환 할 때의 문제

그러나 많은 오류가 발생하기 때문에 변환 할 수 없습니다. 나는 이것을 조사했다. Xcode 대상에서 빌드 설정을 변경하려고합니다.

+0

오류가 있습니까? 어떤 오류가 있습니까? – Costique

+0

감사합니다. Objective-C로 변환 할 수 없음과 같은 오류 창이 나타납니다. ARC Xcode는 변환을 방해하는 84 가지 문제를 발견했습니다. 모든 ARC 준비 문제를 해결하고 다시 시도하십시오. –

답변

6

ARC로 변환 도구는 프로젝트를 갑자기 ARC로 만들 수있는 마술 총알이 아닙니다. 도구가하는 일은 release & retain과 같은 모든 통화를 제거하는 것입니다. 또한 autorelease 풀을 새로운 @auto release {} 스타일로 전환 할 수 있습니다. 이 작업을 수행하기 전에 비행 전 스크립트를 실행하여 너무 복잡하여 오류라고 표시하기에 너무 복잡한 항목을 찾아서 각 항목을 검토하고 올바른 수정을 할 수 있도록합니다.

84 가지 문제 중 하나를 수행하고 해결 방법을 찾아야합니다. 대부분 여러 위치에 여러 종류의 오류가 있지만 각 경우마다 약간 다른 해결책이있을 수 있습니다. Xcode는 일부 오류에 대해 몇 가지 가능한 수정 방법을 제안 할 수 있습니다. (흰색 사각형이있는 정지 표시에 오류를 표시하는 오류가있을 수 있습니다. Xcode는 사용할 코드를 선택하지 않아도됩니다. 일부 문제는 Google의 도움을 받아 쉽게 해결할 수 있습니다. 또한 결국 오류보다 더 많은 오류가 발생할 것입니다 (오류를 수정할 때마다 한 프로젝트를 변환하고 더 많이보고 변환하려고 시도 함).

일부 연구를 수행 한 후에 알아낼 수없는 오류에 대해서는 여기에서 질문을 게시해야합니다. ARC로 변환 할 때 여러 가지 문제가 발생할 수 있으므로 가능한지 확인하십시오.

+3

타사 라이브러리에서 오류가 발생하는 경우 파일 단위로 ARC를 해제하는 것도 옵션 일 수 있다고 덧붙일 수 있습니다. –

+0

수십 개의 ARC 문제를 수동으로 수정하는 것을 싫어합니다. 그러면 ARC 도구로 변환의 용도는 무엇입니까? 예 도구는 마술 총알이 아니지만 release & retain 또는 [super dealloc] 제거와 같은 간단한 ARC 오류를 변환하는 데 적합해야합니다. 그리고 그것은 이전 버전에서도 그렇게 작동했습니다. Xcode 6에서 뭔가 잘못 보입니다. – Vladimir

+0

@Vladimir, 문제를 직접 해결하는 것이 싫다면 Apple이 버그를 신고하여 문제에 대해 알거나 다른 사람에게 그 부분을 대신 맡기거나 ARC로 전환하지 않도록하십시오. 2012 년 2 월에 Xcode가 변경되어 이전 버전보다 ARC 변환 도구의 기능이 떨어지게되었지만 Apple이 Xcode의 크기를 고려하여 스스로 문제를 찾을 가능성은 거의 없습니다. 그들은 또한 그것에 대해 가지고있는 보고서의 수를 기준으로 수정 프로그램의 우선 순위를 정합니다. 따라서 다른 사람이보고 한 것으로 알고있는 경우에도 스스로 수정하십시오. – theMikeSwan

관련 문제