ios - 隐式转换失去整数精度Xcode 5.1

标签 ios objective-c xcode warnings xcode5.1

从xCode 5.1开始,我得到以下警告:

Implicit conversion loses integer precision: 'NSInteger' (aka 'long') to 'SInt32' (aka 'int')

在以下行:
(void) CFStreamCreatePairWithSocketToCFHost(NULL, host, port, &readStream,&writeStream);

标记为“端口”

这是声明:
+ (void)getStreamsToHostNamed:(NSString *)hostName port:(NSInteger)port inputStream:(NSInputStream **)inputStream outputStream:(NSOutputStream **)outputStream

有人可以帮我这个警告吗?

最佳答案

由于CFStreamCreatePairWithSocketToCFHost的第三个参数的类型为SInt32,因此您所需要做的就是更改getStreamsToHostNamed方法的签名,如下所示:

+ (void)getStreamsToHostNamed:(NSString *)hostName
                         port:(SInt32)port
                  inputStream:(NSInputStream **)inputStream
                 outputStream:(NSOutputStream **)outputStream

通常,应避免在整数类型的NS包装器之间进行隐式转换,因为它们具有平台相关的实现。幸运的是,编译器会对此发出警告,因此您不必手动跟踪它们。

关于ios - 隐式转换失去整数精度Xcode 5.1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22715314/

相关文章:

ios - 关于如何将 APN 的设备 token 链接到注册用户的建议(通过 phonegap 或 UIWebView)

ios - 导入静态库后,header中有些header找不到

ios - 无法识别的选择器 UIDeviceRGBColor countByEnumeratingWithState :objects:count:

iPhone 表情符号 Unicode 编码 UTF

objective-c - 将 PNG 图像和其他资源嵌入到 OS X 可执行文件中

ios - Xcode: Storyboard太困惑且“忙碌”

ios - Xcode 静态 UITableView 单元格在 Storyboard中为空白

ios - Swinject 将自己的属性注入(inject)新的 UIViewController

ios - 使用@IBInspectable 设置 UItextField 值

ios - 银联银行 : Prevent backup files on iCloud