我知道这个答案,但这不是一回事 - 那就是传递一个用分配初始化的指针.
我正在与具有以下结构定义的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) 我想从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查找
如果我们对这个问题进行了无意义的否定投票,我们可以尝试找到解决方案并帮助其他人(比如我)