Xcode 这个错误到底意味着什么?
我犯了这个错误,因为我只在家里编写xcode,所以我没有足够的资源来快速提出最简单的10秒问题。这是今天出现的一个,我正在使用AudioSessionAddPropertyListener函数,我得到以下警告: 将'CFTypeRef'aka'const void传递给'void'类型的参数将丢弃限定符 从这行代码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
// 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]:我认为您在引用上述消息时忽略了*。这很重要,谢谢你的帮助!我来看看。