2013-01-31 4 views
0

나는 그들이 컴파일러 오류가 발생할 경우 한 번에 하나씩 복용 및보고에 의해 내 Xcode 프로젝트에 불필요한 헤더를 제거하기 위해 노력하고있어.XCode는 헤더가없는 클래스를 어떻게 찾습니까?

때때로, 나는 클래스를 선언하는 헤더를 취할 수 있으며, 엑스 코드는 여전히 내가 그것을 사용할 수 있습니다.

예를 들어, 나는 #import "Chartboost.h"을했다,하지만 ChartboostChartboost *cb = [Chartboost sharedChartboost];

옵션 클릭이 내 코드는 여전히 compile 난 어떻게

NSObject.h에 선언 말한다 라인에 오류가 없었다 헤더 파일을 가져 오지 않습니다!

+0

잘 오브젝티브 -C는 메시지에 의존 ... 헤더가 이미 사용할 수있는 우리에게 말하고에서하지 않는 것이 좋습니다, 당신은 상관없이 그것을 구현 아닌지의 모든 객체에 어떤 메시지를 보낼 수 있습니다. 적어도 AFAIK –

+0

@StefanH 그래,하지만 그건 컴파일러 오류와 아무 관련이 없다. –

+0

경고를 무시하지 않도록하십시오. – Till

답변

2

, 그러나 다른 수입 헤더 중 하나를 통해. 이렇게하면 헤더 파일을 끝없이 사용하여 모든 클래스 헤더를 어지럽히 게 할 필요가 없습니다. 너무 나쁜 엑스 코드는

+0

글쎄, 당신의 대답의 첫 부분은 정확하지만 나는 다른 헤더 안에 헤더를 가져 오는 아이디어에 완전히 반대합니다. 예, 때로는 필요합니다 (예 : 프로토콜 정의). 그러나 대부분의 경우 전달 선언을 올바르게 사용하면 원형 헤더 가져 오기를 만들지 않아도됩니다. 그리고 OP를위한 또 다른 힌트로서, 프로젝트의 pch 파일을 점검하십시오. – Till

+0

불필요한 가져 오기를 찾을 수있는 도구가 있습니까? – cstack

+0

또한 pch 파일이란 무엇입니까? – cstack

1

당신이 Chartboost.h를 가져하지 않는 경우 다음 Chartboost *의 CB = [Chartboost sharedChartboost]은 가장 확실하게 오류를 줄 것입니다. 가능한 유일한 설명은 Chartboost를 가져 오는 다른 파일을 가져올 수 있다는 것입니다.

당신은 Chartboost.h을 가져
관련 문제