当前位置:  开发笔记 > 前端 > 正文

来自<netinet/in.h>的INADDR_LOOPBACK宏未在swift中导入

如何解决《来自<netinet/in.h>的INADDR_LOOPBACK宏未在swift中导入》经验,为你挑选了1个好方法。

我正在尝试使用没有文档的peertalk框架.在他们的obj-c示例中,他们使用INADDR_LOOPBACK宏,并且示例正在运行.但是当我尝试在swift中做同样的事情时,系统会给我一个未解决的标识符错误.任何人都知道如何解决它?

http://www.gnu.org/software/libc/manual/html_node/Host-Address-Data-Type.html



1> Martin R..:

更新Swift 3:从Swift 3开始,INADDR_LOOPBACK 导入Swift.因此,添加就足够了

#include 

到桥接头文件,但不再需要自定义定义.


老答案:由于某种原因,宏定义

#define INADDR_LOOPBACK         (u_int32_t)0x7f000001

导入到斯威夫特.问题可能(u_int32_t)强制转换,因为其他宏都喜欢

#define INADDR_NONE             0xffffffff              /* -1 return */

进口的.

一种解决方案是定义

let INADDR_LOOPBACK = UInt32(0x7f000001)

在你的Swift代码中.或者,添加

#include 
const uint32_t kInAddrLoopback = INADDR_LOOPBACK;

到桥接头文件并kInAddrLoopback在Swift代码中使用.这不容易出错,因为您不必重复常量.

推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有