2012-07-15 2 views
0

게임을 iOS로 이식하려고하는데 문제가 있습니다.Objective-c 서브 클래 싱에서 연결 오류가 발생합니다

- (id)initWithFile:(NSString *)fileName effect:(GLKBaseEffect *)effect 
{  
    if ((self = [super init])) 
    { 
     //some stuff 
    } 
    return self; 
} 

그때 CKPLayer (그것이 상속하는 이외의 순간에 다른 메서드 나 속성이 없습니다라는 서브 클래스가 있습니다 :

@property (strong) CKPlayer *player1; 

그러나 나는 다음과 같은 방법으로 CKSprite라는 클래스를 가지고 내가 부모 방법을 사용하여 초기화 할 때 :

:

self.player1 = [[CKPlayer alloc] initWithFile:@"Images/parrot.png" effect:self.effect]; 

나는이 오류 아키텍처 I386 0

정의되지 않은 심볼 : "_OBJC_CLASS _ $ _ CKPlayer"에서 참조 : CKViewController.o LD에서 objc 수준의-REF : 기호가 아키텍처 i386을 그 소리 찾을 수 없습니다 : 오류 : 링커 명령이 종료 실패했습니다 코드 1 (호출을보기 위해 -v 사용)

이것은 내가 어쩌면 어리석은 짓을 한 것처럼 이런 식으로하려고하는 나의 처음입니다.

도움이 될 것입니다.

#import "CKSprite.h" 

@interface CKPlayer : CKSprite 


@end 
+0

가합니까 행복해야한다

#import "CKPlayer.h" @implementation CKPlayer @end 

및 LD : 어쩌면 당신은 단지처럼 보여야 파일을 추가는 "순간 다른 메서드 나 속성을"이 없기 때문에이 경우에, 그것을 구현하는 것을 잊었다 'CKSprite' 클래스는 결국'NSObject'에서 상속 받습니까? –

+0

위의 질문에서 CKPlayer 클래스 인터페이스 선언을 작성하면 대답하는 데 도움이 될 수 있습니다. – Guru

+0

@KevinGrant, 그렇지 않습니다. – Elephantinc

답변

1

링커에 CKPlayer 클래스의 구현이 없습니다.

+0

나는 이미 그와 같은 파일을 가지고있다. (그리고 나는 실수를 한 경우에 당신이 썼던 것을 복사하고 붙여 넣으려고했으나 아무 쓸모가 없었다.) – Elephantinc

+0

글쎄, 컴파일러가 올바른 기호를 생성하지 못하거나 연결되어 있지 않습니다 (대상에 포함 된 파일이 프로젝트의 나머지 부분과 동일한 아치 i386으로 컴파일 되었습니까?) – cdelacroix

+0

가지고 있습니다! 이 파일은 '컴파일 소스'에 포함되어 있습니다. 이유가 확실하지 않습니다. 고마워요 : D – Elephantinc