IOS 8.1中的警告以及soundOAL.m中的openAL?

IOS 8.1中的警告以及soundOAL.m中的openAL?,ios,openal,Ios,Openal,我在Xcode 6.1.1(用Xcode 5.x制作)中打开了一个旧的游戏项目,用iPad Air模拟器在模拟器中启动它,编译后在文件的许多行中发现了许多奇怪的警告。他们大多会这样说: "Incompatible pointer types passing 'NSUInteger *' (aka 'unsigned long *') to parameter of type 'ALuint *' (aka 'unsigned int *')" 我想我知道这意味着什么(注:应用程序工作没有问题)

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

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

我想我知道这意味着什么(注:应用程序工作没有问题),但我想知道是否有什么改变,需要我来改变。我试图在iOS 8文档中找到一些东西,但什么都看不懂。也许有人更了解它?

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

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

/** unsigned 32-bit integer */
typedef unsigned int ALuint;
要删除编译器警告,请将
NSUInteger
变量类型更改为
ALuint
或在适当的情况下强制转换它们,例如:

alSourceStop((ALuint)sourceID);