2011-01-24 3 views
0

원래 iPhone 전용 프로젝트의 Xcode에서 새로운 iPad 대상을 만들었습니다. Apple이 권장하는대로, iPad 용 뷰 컨트롤러도 생성하고, 아이폰 뷰 컨트롤러 코드 대부분을 ipad 버전으로 복사하여 붙여 넣었습니다. 문제는 #define과 enums와 많은 충돌이 있다는 것입니다.iphone/ipad - 두 개의 다른 대상,보기 컨트롤러의 충돌

나는이있는 경우 :

#define birdSize 175 

차라리과 아이 패드 뷰 컨트롤러를 다시 정의 할 필요가 없습니다 것 :

#define birdSize_iPad 400 

다음 검색의 모든 인스턴스를 교체 구현. 그냥 정의 된 값을 변경하고 싶습니다,하지만 그것은 아이폰 버전에 영향을 미칠 것입니다. 두 가지 질문 :

  1. 왜 이러한보기 컨트롤러가 다른 대상에 포함될 때 충돌이 발생합니까?
  2. 이 상황을 처리하는 가장 좋은 방법은 무엇입니까?

답변

1

1.) 당신의 iPad View Controller에서도 "#define birdSize"로 헤더 파일을 가져 오는 것 같습니다. 어쩌면 간접적으로? 당신이 우리에게 당신의 수입품을 보여줄 수 있으면, 말하기가 더 쉬울 것입니다 ...

2.) 나는 "최선의 방법"에 관해 모른다. 그러나 여기 어떻게 해결 했는가? iPad 용 대상 옵션 - > 빌드 설정 -> GCC과 같을 것이다 CFLAGS 다음

-DIPAD 

쉽게 어딘가에 birdSize 중 하나 개를 정의 할 수 있습니다 : 어쩌면

#ifdef IPAD 
    #define birdSize 400 
#else 
    #define birdSize 175 
#endif 

없는 가장 우아한 방법,하지만 나를 위해 잘 작동 .

관련 문제