IOS 8.1 中的警告,声音中带有 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:应用程序可以毫无问题地工作(,但我想知道是否有任何变化并且需要我进行更改。我试图在iOS 8文档中找到一些东西,但我什么也读不懂。也许有人更了解它?

它们是警告,因为它们现在是 64 位支持。您可以忽略它们,但是如果您看到任何意外结果,则应查看那里。

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

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

要删除编译器警告,请将NSUInteger变量类型更改为ALuint或在适当的情况下强制转换它们,例如:

alSourceStop((ALuint)sourceID);

最新更新