상황 1 :
SuperScene 이라는 상위클래스에서 private 변수로 CGPoint winSize 라는 변수를 생성해 두었음.
// SuperScene.h
...
@interface SuperScene : CCScene {
CGSize winSize; //윈도우 사이즈
}
...
상황 2 :
이 SuperScene 을 상속 받은 다른 클래스들에서는 상위 클래스에서 선언한 winSize 변수에 자유롭게 접근이 가능함. 이렇게 구현된 클래스가 수십개가 있는데 문제가 없었다.
그런데 SuperScene을 상속받은 수많은 클래스 중에서 유독 한 클래스에서 선언하지 않았다고 에러..
뭔가가 잘못되었음. (이밖에 상위 클래스인 SuperScene 에서 선언한 변수들은 죄다 에러)
상속받은 클래스에서 변수를 선언하려고하면 중복선언이라고 에러..
해결책 :
@property 와 @synthesize 를 구현한 멤버변수가 없으면 엄한데서 오류가 나오기 시작한다!!!
내 경우엔 BattleScene 이란 하위 클래스(SuperScene을 상속받은..) 에서 @property 로 CurrentWeapon 이라는 멤버 변수를 보내주고 @synthesize 로 구현까지 해주었는데 정작.. CurrentWeapon 이라는 멤버변수를 선언하지 않았다;;;
- 이렇게 되어있으면 문제.. 정작 변수 선언이 되어있지 않았다.
@interface BattleScene : SuperScene {
}
@property (nonatomic, retain) CCSprite* currentWeaponMark;
@synthesize currentWeaponMark;
- 요렇게 해주거나 변수가 필요없으면 @property 와 @synthesize 를 삭제한다.
@interface BattleScene : SuperScene {
CCSprite* currentWeaponMark;
}
@property (nonatomic, retain) CCSprite* currentWeaponMark;
@synthesize currentWeaponMark;
'내가끄적인글 > 프로그래밍' 카테고리의 다른 글
[iOS App] 일정관리(Events List) APP 이 드디어 iTunes Store 에 출시! (26) | 2011.10.14 |
---|---|
[iOS] GameCenter 를 내 어플에 붙여보자! (+ GameCenter Notification) (30) | 2011.04.19 |
[cocos2d] 럴쑤럴쑤 이럴쑤! cocosDenshion 의 CDAudioManager 는 iPhone 4 에서 BGM재생이 되질 않는다?! (0) | 2011.02.14 |
[cocos2d] 게임 개발 시작 (0) | 2011.01.31 |
[iOS] iOS (iPhone,iPod touch) 의 MKMapView 정리하기 (47) | 2010.11.18 |
[iOS] UIAlertView 를 모달(modal) 창 처럼, 버튼 누르기전까지 대기하기 (18) | 2010.10.01 |