在soundOAL.m中使用openAL的IOS 8.1中的警告?

时间:2015-02-17 14:49:33

标签: ios openal

我在Xcode 6.1.1(用Xcode 5.x制作)中打开了一个旧游戏项目,在模拟器中使用iPad Air模拟器启动了它,并在编译后发现SoundOAL.m中有很多奇怪的警告在这个文件的许多行中。他们大多说这样的话:

"Incompatible pointer types passing 'NSUInteger *' (aka 'unsigned long *') to parameter of type 'ALuint *' (aka 'unsigned int *')"

我想我知道这意味着什么(ps:app没有问题),但我想知道是否有任何改变,需要我改变。我试图在iOS 8文档中找到一些内容,但我无法阅读任何内容。也许有人更了解它?

2 个答案:

答案 0 :(得分:1)

由于他们现在获得64位支持,他们发出了警告。你可以忽略它们,但是如果你看到任何意想不到的结果,你应该看一下。

答案 1 :(得分:1)

由于iOS设备支持64位,NSUInteger为64位。您的代码正在将指向NSUInteger的指针传递给一个ALuint的方法,该方法在al.h中定义为32位:

/** unsigned 32-bit integer */
typedef unsigned int ALuint;

要删除编译器警告,请将NSUInteger变量类型更改为ALuint或在适当的位置投射它们,例如:

alSourceStop((ALuint)sourceID);