32 비트 디바이스에서 철저히 테스트 한 스프라이트 키트 애플리케이션이 있습니다. 필자는 최근에 64 비트 장치에서 실행할 때 시작시 응용 프로그램이 다운되는 것을 발견했습니다.스프라이트 키트 스프라이트 생성이 64 비트 시뮬레이터에서 작동하지 않습니다.
이 코드는 SKNode
에서 상속하는 클래스의 내 init
메서드에 있습니다.
self.sprite = [SKSpriteNode spriteNodeWithImageNamed:[_properties objectForKey:@"Sprite"]];
[self.sprite setScale:BUILDING_SCALE];
[self addChild:_sprite];
addChild
행의 응용 프로그램이 64 비트 시뮬레이터에서만 충돌합니다. 64 비트 시뮬레이터 다시
<SKSpriteNode> name:'(null)' texture:[<SKTexture> 'image1.png' (266 x 76)] position:{0, 0} size:{53.200001, 15.2} rotation:0.00
과 :
내가 32 비트 시뮬레이터에self.sprite
의 설명을 인쇄하려고
<SKSpriteNode> name:'(null)' texture:['nil'] position:{0, 0} size:{53.200000762939453, 15.199999809265137} rotation:0.00
또 다른 이상한 일을한다는 것입니다 스프라이트를 처음 초기화하고 단계를 건너 뛴 줄에 중단 점을 넣으면 스프라이트가 유효합니다.
아이디어가 있으십니까?
콜 스택 :이 64 비트에서 발생하지만, 문제는 스프라이트 속성이 assign
대신 strong
것을 왜
어떤 타입? 로그에있는 모든 것, 즉 오류 메시지? 호출 스택이란 무엇입니까? – LearnCocos2D
EXC_BAD_ACCESS (코드 = 1, 주소 = 0x30). 호출 스택의 스크린 샷을 추가하겠습니다. 콘솔에 아무것도 없습니다. – NMunro
예외 중단 점을 추가하고 위 코드가 충돌하는 실제 addChild 호출인지 확인하십시오. 그리고 _properties가 sprite 키에 대해 반환하는 것을 확인하십시오. – LearnCocos2D