值转换问题:隐式转换失去整数精度:'size_t'(又名'unsigned long')到'int'

Swi*_*ily 3 iphone objective-c gpuimage ios7.1

我刚刚将Xcode的版本更新为5.1,并发生了此错误.我正在使用GPUImage库.这是一个截图.先谢谢你们!错误截图

Ami*_*wad 10

size_t(size type)是对象大小(C对象,而不是Objective-C对象)和类型的整数类型.size_t对象的大小(它占用的位数)取决于所使用的体系结构的指针大小.int对象的大小(它占用的位数)与此无关,通常更小.因此,如果值大到适合对象而不是对象,那么将size_t类型值赋值给类型变量int可能会失败.size_tint

您可以执行以下操作之一:

1也可以创建变量bufferHeightbufferWidth类型size_t.

2进行变量bufferHeightbufferWidth整型至少是一样大的size_t,即longNSInteger.(这取决于您使用的架构.)

3错误消息警告您,如果更大类型的值存储无法用较小的类型表示,则较大类型的隐式转换将失败.如果您确定值(函数的结果)始终适合a int,则使转换显式化.

int bufferHeight = (int)CVPixelBufferGetHeight(…);
Run Code Online (Sandbox Code Playgroud)

BTW:请不要若截图的内容是文本后的截图.请复制代码和错误消息.您可以复制并粘贴错误消息.