배열에서 임의의 스프라이트 노드를 선택하여 화면에 배치하는 방법이 있습니다. 내 응용 프로그램이 충돌합니다.NSArray로 인해 앱이 다운 될 수 있습니까?
* 인해 캐치되지 않는 예외 'NSInvalidArgumentException'응용 프로그램 종료, 이유는 :이 오류 메시지에서 조각입니다 '- [__ NSCFConstantString decodeObjectForKey :] : 인식 할 수없는 선택기 인스턴스 0x47b4로 전송'
이것은 내가 작성한 방법입니다.
-(SKSpriteNode *) gamePieces {
NSArray *things = [NSArray arrayWithObjects: @"piece1", @"piece2", @"piece3", nil];
int r = arc4random() % [things count];
SKSpriteNode *randomObject = [[SKSpriteNode alloc] initWithCoder:[things objectAtIndex:r]];
return randomObject;
}
문제는 무엇입니까?
"decodeObjectForKey를 NSString에 적용하면 작동하지 않습니다." –
이 문제를 해결하려면 어떻게해야합니까? – cocoamoco
먼저 예외 스택 추적을 캡처하고 해석하여 오류 위치를 파악할 수 있습니다 실제로 왜 "decodeObjectForKey"(이것은 NSArray 또는 NSDictionary에서'[]'색인을 사용하여 색인을 생성하는 연산)이 NSString (NSArray 또는 NSString) –