Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 如何创建指向结构的指针并对其进行类型转换?_Objective C_C_Oop - Fatal编程技术网

Objective c 如何创建指向结构的指针并对其进行类型转换?

Objective c 如何创建指向结构的指针并对其进行类型转换?,objective-c,c,oop,Objective C,C,Oop,有人能告诉我哪里出了问题吗?我试图创建一个指向传递给函数的结构aqData的指针,并将其类型转换为AQPlayerState的结构类型 我得到了错误-使用了未声明的标识符“AQPlayerState”和预期表达式 @implementation AudioPlayer #define kNumberBuffers 3 struct AQPlayerState { AudioStreamBasicDescription mDataFormat; AudioQueue

有人能告诉我哪里出了问题吗?我试图创建一个指向传递给函数的结构aqData的指针,并将其类型转换为AQPlayerState的结构类型

我得到了错误-使用了未声明的标识符“AQPlayerState”和预期表达式

    @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):不太好

您的错误信息是什么?啊,抱歉,请稍后编辑。您的错误信息是什么?啊,抱歉,请稍后编辑