相关疑难解决方法(0)

Swift:将未初始化的C结构传递给导入的C函数

我知道这个答案,但这不是一回事 - 那就是传递一个用分配初始化的指针.

我正在与具有以下结构定义的C库连接:

typedef struct myStruct { unsigned char var [50]; } myStruct;
Run Code Online (Sandbox Code Playgroud)

有一个函数可以传递结构的地址 - 通常基于堆栈而不是堆,因此:

myStruct mine;
initMyStruct(&mine);
Run Code Online (Sandbox Code Playgroud)

这会初始化结构的内容 - 调用者不知道内存的内部格式,因此会混淆.

在Swift中,我正在创建一个类,它将封装结构和与其他C函数接口的接口.

class MyClass {

    var mine : myStruct

    init() {

        initMyStruct(&mine)
        // Error: Variable 'self.msg' passed by reference before being initialized

    }

}
Run Code Online (Sandbox Code Playgroud)

我不能为我的生活弄清楚如何初始化结构,或者如果可以替代使用一个点.

mine = myStruct()
// Fails because you aren't providing the value of the member 'var'

mine = myStruct((CUnsignedChar(), CUnsignedChar(), /*... repeat to 50 */))
// Cannot find an overload for 'init' …
Run Code Online (Sandbox Code Playgroud)

c macos struct pointers swift

13
推荐指数
2
解决办法
5854
查看次数

如何从Swift的DNS查询中获取真实的IP地址?

我想从DNS查询中获取IP连衣裙(如192.168.0.1或87.12.56.50)Swift.我用100种不同的方法尝试了100次......没有什么能帮助我,所以我必须寻求帮助(我希望这里有很多人;))这是我的代码到目前为止:

let host = CFHostCreateWithName(nil,"subdomain.of.stackoverflow.com").takeUnretainedValue();
CFHostStartInfoResolution(host, .Addresses, nil);
var success: Boolean = 0;
let addresses = CFHostGetAddressing(host, &success).takeUnretainedValue() as NSArray;
if(addresses.count > 0){
   let theAddress = addresses[0] as NSData;
   println(theAddress);
}
Run Code Online (Sandbox Code Playgroud)

好的......这些是我试图实现但没有成功的代码的链接:https: //gist.github.com/mikeash/bca3a341db74221625f5
如何在iOS上执行DNS查询
从NSData对象在Swift中创建数组
CFHostGetAddressing( )支持ipv6 DNS条目?
在Swift中进行简单的DNS查找
如果我们对这个问题进行了无意义的否定投票,我们可以尝试找到解决方案并帮助其他人(比如我)

dns ip-address swift

10
推荐指数
1
解决办法
9015
查看次数

标签 统计

swift ×2

c ×1

dns ×1

ip-address ×1

macos ×1

pointers ×1

struct ×1