Xcode 这个错误到底意味着什么?

Xcode 这个错误到底意味着什么?,xcode,warnings,Xcode,Warnings,我犯了这个错误,因为我只在家里编写xcode,所以我没有足够的资源来快速提出最简单的10秒问题。这是今天出现的一个,我正在使用AudioSessionAddPropertyListener函数,我得到以下警告: 将'CFTypeRef'aka'const void传递给'void'类型的参数将丢弃限定符 从这行代码 // Registers the audio route change listener callback function // An instance of the audio

我犯了这个错误,因为我只在家里编写xcode,所以我没有足够的资源来快速提出最简单的10秒问题。这是今天出现的一个,我正在使用AudioSessionAddPropertyListener函数,我得到以下警告:

将'CFTypeRef'aka'const void传递给'void'类型的参数将丢弃限定符

从这行代码

// Registers the audio route change listener callback function
// An instance of the audio player/manager is passed to the listener
AudioSessionAddPropertyListener (  kAudioSessionProperty_AudioRouteChange, 
                                 audioRouteChangeListenerCallback,  CFBridgingRetain(self) );
然后定义AudioSessionAddPropertyListener

AudioSessionAddPropertyListener(    AudioSessionPropertyID              inID,
                                AudioSessionPropertyListener        inProc,
                                void                                *inClientData)  
我看到*inClientData变量似乎是void类型,也可能不是

那么这里到底有什么问题,我想知道在排除故障时应该寻找什么。我不知道我不知道什么

谢谢

史蒂夫

我还不到50岁,所以我不能发表评论:

我看了一下CfBrigingRetain的定义 它接受ID,并返回CFTypeRef

NS_INLINE CF_RETURNS_RETAINED CFTypeRef CFBridgingRetain(id X) {
    return (__bridge_retained CFTypeRef)X;
}
现在,CFTypeRef的定义是无效的 /*所有CF对象的基类型及其多态函数*/ typedef const void*CFTypeRef

为了删除警告,我这样做了,将函数的输出转换为void*

AudioSessionAddPropertyListener (  kAudioSessionProperty_AudioRouteChange, 
                                 audioRouteChangeListenerCallback,  (void *) CFBridgingRetain(self) );

是否有人认为这有问题?

检查此主题[将CFTypeRef aka const void*发送到'void*'类型的参数将丢弃限定符][1][1]:我认为您在引用上述消息时忽略了*。这很重要,谢谢你的帮助!我来看看。