좋아, 그래서 "게임"라는 클래스 개체 코드가 있습니다. 모든 프레임 (60FPS)은 해당 객체를 문자열을 가져 오는 함수로 업데이트합니다. 5 초 동안 게임을 실행 한 후 인식 할 수없는 셀렉터가 인스턴스 오류로 전송됩니다.인스턴스로 전송 된 인식 할 수없는 선택기 - 이유는 무엇입니까?
업데이트 :
[game updatePlayersAndMonsters:@"0" monsters:@"0"];
기능 :
-(void)updatePlayersAndMonsters:(NSString*)players monsters:(NSString*)monsters {
CCLOG(@"%@.%@", players, monsters);
}
내가 무슨 일이 일어나고 있는지 이해가 안 돼요. 오류 :
2011-07-03 12:13:19.175 app[65708:207] -[NSCFString updatePlayersAndMonsters:monsters:]: unrecognized selector sent to instance 0xc4e95b0
2011-07-03 12:13:19.176 app[65708:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSCFString updatePlayersAndMonsters:monsters:]: unrecognized selector sent to instance 0xc4e95b0'
어떻게해야합니까? 감사. 또한 IDK가 필요한 다른 세부 정보가 있으면, 내가 잊어 버린 것만 쓰면 그냥 생각이 없습니다.
UPDATE :
+(id) GmameNodeWithMapID:(int)MapID_ scene:(SomeScene*)MainScene_ players:(NSString*)Cplayers_ monsters:(NSString*)Cmonsters_ monsterCount:(NSString*)monsterCount_
{
return [[[self alloc] GmameNodeWithMapID:MapID_ scene:MainScene_ players:Cplayers_ monsters:Cmonsters_ monsterCount:monsterCount_] autorelease];
}
-(id) GmameNodeWithMapID:(int)MapID scene:(SomeScene*)MainScene players:(NSString*)Cplayers monsters:(NSString*)Cmonsters monsterCount:(NSString*)monsterCount
{
if((self=[super init])) {
내가 그것을 만들 :
+(id) scene {
CCScene *s = [CCScene node];
id node = [SomeScene node];
[s addChild:node];
return s;
}
-(id) init {
if((self=[super init])) {
:
game = [GameNode GmameNodeWithMapID:ChoosenMapID scene:self players:Thing[5] monsters:Thing[6] monsterCount:Thing[4]];
업데이트 2
내가 SomeScene을 만들 Gmae이 클래스 GameNode의 목적은
나는 그것을 사용 :
[[CCDirector sharedDirector] replaceScene: [CCTransitionRadialCW transitionWithDuration:1.0f scene:[LoginScene scene]]];
확인을 ... 흠 그렇게하지 내가 멍청한 것에 대해 유감스럽게 생각합니다. 다른 곳을 가리 키도록 다시 지정한다는 것은 무엇을 의미합니까? 감사! –
이런 종류의 오류를 발생시키는 데는 몇 가지 방법이 있습니다. 한 가지 방법은 다음과 같이 무언가를 indadvertedly하고 있습니다 :'game ='. 또 다른 방법은 (아마 가장 최근의 업데이트가 주어 졌을 때), 게임 객체가 릴리즈되었고, 게임 객체를 담았던 메모리 위치가 이제 다른 것을 포함하고 있다는 것입니다. –
jjwchoy
xcode의 도구 도구는 이런 종류의 디버깅에 정말로 유용합니다. 시뮬레이터에서 실행할 수 있다면 좀비 도구로 실행 해보십시오. 이 도구는 출시 된 개체에 메시지를 보낼 때 알려주며, 할당량/보유/릴리스/자동 회수를 모두 표시하여 과도하게 공개 된 (또는 보존되지 않은) 위치를 찾을 수 있도록 도와줍니다 – jjwchoy