참조하십시오 코멘트 :objective-c 메시징을 통해 C 스타일 객체 배열에 액세스하기위한 올바른 구문은 무엇입니까?
static void drawAnObject() {
Form *form = [[Form alloc] init];
int i;
[form randomizeCube];
glColor3f(0.0, 0.0, 0.0);
for(i = 0; i < MAX_CUBE; i++) {
glutWireCube(form->cube[i]->size);
//compiler issues hard warning because form->cube is protected!!
}
}
차라리 내가 오히려 같은 것을 쓸 수 나는 "양식"클래스에 배치 된 접근을 사용 :
glutWireCube([[form cube][i] size]);
을하지만 나는 "로 변환 할 수 없습니다 수 포인터 유형 "오류가 발생할 수 있습니다. 다음
@interface Form : NSObject <NSCopying> {
Cube *cube[MAX_CUBE];
}
:
이@implementation Form
- (Cube *) cube {
return *cube;
}
은 다음 변수 "큐브"가 "양식"클래스의 헤더 파일에 정의 된대로 :
이는 "양식"클래스 내 접근입니다 헤더 파일에 정의 된 "Cube"클래스 변수입니다.
@interface Cube : NSObject <NSCopying> {
double size;
double positionX;
double positionY;
double positionZ;
}
... 및 해당 액세서 그가 구현 (하는 .m) 파일 : 나는 나중에 포트에 비 코코아 플랫폼 프로젝트의 코드의이 부분을 계획 할 NSArray를 O를있는 NSMutableArray를 사용하지
- (double) size {
return size;
}
- (void) setSize: (double) newSize {
size = newSize;
}
- (double) positionX {
return positionX;
}
- (void) setPositionX: (double) newPositionX {
positionX = newPositionX;
}
- (double) positionY {
return positionY;
}
- (void) setPositionY: (double) newPositionY {
positionY = newPositionY;
}
- (double) positionZ {
return positionZ;
}
- (void) setPositionZ: (double) newPositionZ {
positionZ = newPositionZ;
}
싶습니다.
나는 올바른 방법을 찾기 위해 지난 두 시간을 보냈습니다. C-Style 배열과 Objective-C 접근자를 사용하여이를 수행하는 "올바른 방법"이 있습니까?
신속한 답변 주셔서 감사합니다. 나는 이것을 시도하고 나의 발견을 게시 할 것이다. – Rafael
해결되고 이해됩니다. 감사. – Rafael