这个错误甚至意味着什么?

时间:2013-08-25 11:07:54

标签: xcode warnings

我收到了这个错误,因为我只在我家编程xcode,所以我没有资源快速询问最简单的10秒问题。所以这是今天出现的,我正在使用AudioSessionAddPropertyListener函数,我收到此警告:

将'CFTypeRef'(又名'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岁,所以我无法发表评论:

我查看了CFBridgingRetain的定义  它需要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) );

有没有人看到这个问题?

0 个答案:

没有答案