Objective c 如何创建指向结构的指针并对其进行类型转换?
有人能告诉我哪里出了问题吗?我试图创建一个指向传递给函数的结构aqData的指针,并将其类型转换为AQPlayerState的结构类型 我得到了错误-使用了未声明的标识符“AQPlayerState”和预期表达式Objective c 如何创建指向结构的指针并对其进行类型转换?,objective-c,c,oop,Objective C,C,Oop,有人能告诉我哪里出了问题吗?我试图创建一个指向传递给函数的结构aqData的指针,并将其类型转换为AQPlayerState的结构类型 我得到了错误-使用了未声明的标识符“AQPlayerState”和预期表达式 @implementation AudioPlayer #define kNumberBuffers 3 struct AQPlayerState { AudioStreamBasicDescription mDataFormat; AudioQueue
@implementation AudioPlayer
#define kNumberBuffers 3
struct AQPlayerState {
AudioStreamBasicDescription mDataFormat;
AudioQueueRef mQueue;
AudioQueueBufferRef mBuffers[kNumberBuffers];
AudioFileID mAudioFile;
UInt32 bufferByteSize;
SInt64 mCurrentPacket;
UInt32 mNumPacketsToRead;
AudioStreamPacketDescription *mPacketDescs;
bool mIsRunning;
};
static void HandleOutputBuffer (
void *aqData,
AudioQueueRef inAQ,
AudioQueueBufferRef inBuffer
) {
struct AQPlayerState *pAqData = (AQPlayerState *) aqData;
提前感谢您的帮助我相信Objective-C
的行为与C
一样。如果没有,这可能不适用于Objective-C
C中的结构通过其“全名”进行识别。试一试
或者,更好的是,根本不投。C编译器知道如何从void*
转换为指向对象的任何其他指针
struct AQPlayerState *pAqData = aqData;
- 隐式转换:良好
- 显式转换(cast):不太好
Objective-C
的行为就像C
一样。如果没有,这可能不适用于Objective-C
C中的结构通过其“全名”进行识别。试一试
或者,更好的是,根本不投。C编译器知道如何从void*
转换为指向对象的任何其他指针
struct AQPlayerState *pAqData = aqData;
- 隐式转换:良好
- 显式转换(cast):不太好