Ios 无法转换类型为';Int';到预期的参数类型';(inout UNSAFEMTABLEBUFFERPOINTER<;,inout Int)抛出->;无效';
此行Ios 无法转换类型为';Int';到预期的参数类型';(inout UNSAFEMTABLEBUFFERPOINTER<;,inout Int)抛出->;无效';,ios,swift4,Ios,Swift4,此行var machine=[CChar](\u unsafeUninitializedCapacity:size,initializewith:0)抛出错误 错误消息: 无法将“Int”类型的值转换为预期的参数类型“(inout unsafemtablebufferpointer,inout Int)抛出->无效” 这是我的代码: struct MailTemplate { let destination = "test@gmail.com" let subject = "Te
var machine=[CChar](\u unsafeUninitializedCapacity:size,initializewith:0)
抛出错误
错误消息:
无法将“Int”类型的值转换为预期的参数类型“(inout unsafemtablebufferpointer,inout Int)抛出->无效”
这是我的代码:
struct MailTemplate {
let destination = "test@gmail.com"
let subject = "Test"
let body:String
init(){
let appVersion: String! = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as? String
var platform: String {
var size: Int = 0
sysctlbyname("hw.machine", nil, &size, nil, 0)
var machine = [CChar](_unsafeUninitializedCapacity: size, initializingWith: 0)
sysctlbyname("hw.machine", &machine, &size, nil, 0)
return String.fromCString(machine)!
}
body = "Email Body"
}
}
inout
参数是我们要传递给的函数将要修改的参数。因此,您需要将其作为&size
inout
参数传递,这些参数将由我们传递给的函数修改。因此,您需要将其作为&size
传递,我得到了答案
initializingWith: {_,_ in}
就像这样:
var machine = [CChar](_unsafeUninitializedCapacity: size, initializingWith: {_,_ in})
我得到了答案
initializingWith: {_,_ in}
就像这样:
var machine = [CChar](_unsafeUninitializedCapacity: size, initializingWith: {_,_ in})
当我传递大小时,我遇到了以下错误:无法将类型为“Int”的值转换为预期的参数类型“(inout UnsafemtableBufferPointer,inout Int)throws->Void”(aka“(inout UnsafemtableBufferPointer,inout Int)throws->()),您需要传递一个函数。”(x,y)throws->Void'是一个函数签名,您将int传递给它。但是当我传递我得到的大小时,需要按照上面提到的方式发送inout参数。这个错误是:无法将“Int”类型的值转换为预期的参数类型(inout UnsafemtableBufferPointer,inout Int)throws->Void’(aka’(inout UnsafemtableBufferpointer,inout Int)throws->()),您需要传递一个函数。”(x,y)throws->Void'是一个函数签名,您将int传递给它。但是inout参数需要按照我上面提到的方式发送