touchesBegan
메서드의 didMoveToView
메서드에 정의 된 C 스타일 CGFloat
배열을 사용하고 싶습니다. 배열이 CGFloat
이므로 속성으로 정의 할 수 없습니다. 지구본이 작동하지 않는 것 같습니다. 내 배열은 다음과 같이 정의됩니다.범위를 벗어남 CGFloat 배열
CGFloat levelMapX[] = {self.frame.size.width/2 ...};
SpriteKit을 사용하고 있습니다.
touchesBegan
메서드의 didMoveToView
메서드에 정의 된 C 스타일 CGFloat
배열을 사용하고 싶습니다. 배열이 CGFloat
이므로 속성으로 정의 할 수 없습니다. 지구본이 작동하지 않는 것 같습니다. 내 배열은 다음과 같이 정의됩니다.범위를 벗어남 CGFloat 배열
CGFloat levelMapX[] = {self.frame.size.width/2 ...};
SpriteKit을 사용하고 있습니다.
CGFloat
에 대한 포인터를 선언 할 수 있습니다. 배열과 포인터 are not the same in C이 있지만, 그들은 종종 유사한 방법으로 사용될 수 있습니다.
@property (assign, nonatomic) CGFloat* array;
그리고 배열처럼 사용
const NSInteger myArraySize = 10 * sizeof(CGFloat);
self.array = malloc(myArraySize);
self.array[0] = 0.42;
self.array[1] = M_PI;
그것을 무료로 기억하면 메모리 누출되지 않도록 : 어떤 인스턴스 변수에 대한
- (void)dealloc {
free(self.array);
}
어플 리케이션이 멈추었지만 이유는 확실치 않습니다. –
코드는 실제로'const NSInteger myArraySize = 10 * sizeof (CGFloat);'를 읽어야합니다. 여기서 10은'CGFloat'의 수입니다. 'malloc'은 바이트 단위의 크기를 사용합니다. –
네, 저의 실수입니다. 지적 해 주셔서 고맙습니다. –
를? – rmaddy
컴파일해야합니다. 전체 방법 게시. – EricS