2010-07-09 3 views
3

iPad 앱에 class_getProperty()을 사용하고 있습니다. 난 #import <objc/objc-runtime.h>, iPad 시뮬레이터에서 작동 했어요.iPad에서 class_getProperty를 사용하려면 어떻게해야합니까? (시뮬레이터가 아님)

하지만 내 아이 패드에서 실행하려고 할 때, 엑스 코드는 말한다 :

objc/objc-runtime.h : 그런 파일이나 디렉토리

경고 : 'class_getProperty'함수의 암시 적 선언.

+0

* 실행 * 할 때? 당신은 * 그것을 빌드하려고하는 것을 의미합니까? –

답변

8

시뮬레이터와 장치 간에는 차이가 있으므로주의하십시오. 시뮬레이터는 장치와 완전히 동일한 SDK를 실행하지 않습니다. 하위 레이어는 실제로 Mac SDK에서 가져온 것이므로 Mac에서 실행되기 때문에 의미가 있습니다.

그러나 특정 문제에 대한 해결책이있는 것으로 보입니다. 머리글에서이 두 줄을 추가, Device vs. Simulator

다음
#import <objc/runtime.h> 
#import <objc/message.h> 

이 경고를 제거하는

#import <objc/objc-runtime.h> 

으로 교체 : 당신은 확실히 제프 Lamarche는이 게시물에서 설명하는 수정을 시도해야 관련된 클래스의 파일 :

#if (TARGET_OS_IPHONE) 
- (NSString *)className; 
+ (NSString *)className; 
#endif 

그리고 나서 implementa 파일 :

#if (TARGET_OS_IPHONE) 
- (NSString *)className { 
return [NSString stringWithUTF8String:class_getName([self class])]; 
} 
+ (NSString *)className { 
return [NSString stringWithUTF8String:class_getName(self)]; 
} 
#endif 
+0

매우 빠른 답변을 보내 주셔서 감사합니다. 그리고 성공적으로 작동했습니다! 지금부터는 시뮬레이터와 장치의 차이점에주의해야합니다. – akira108

+0

좋아요! 대답이 맞으면 어쩌면이 문제가 발생한 다른 사람들이 즉시이 수정이 맞는지 확인할 수 있도록 허용으로 표시 할 수 있습니까? – scalbatty

관련 문제