【发布时间】:2016-05-03 17:02:27
【问题描述】:
我有一个如下所示的函数:
func receivedData(pChData: UInt8, andLength len: CInt) {
var receivedData: Byte = Byte()
var receivedDataLength: CInt = 0
memcpy(&receivedData, &pChData, Int(len)); // Getting the error here
receivedDataLength = len
AudioHandler.sharedInstance.receiverAudio(&receivedData, WithLen: receivedDataLength)
}
得到错误:
不能将不可变值作为 inout 参数传递:'pChData' 是一个 'let' 常量
虽然我在这里传递的参数都不是let 常量。为什么我会得到这个?
【问题讨论】:
-
memcpy() 函数在哪里?
-
您的函数是否需要能够在 和 范围内对 pChData 进行变异?还是只在里面?从你的问题看不清楚。如果您只需要将值作为变量inside,请注意不要使用inout。
-
@HarshalBhavsar
memcpy()´ is a function defined inDarwin.C.string`。它的用途之一是修改 MTLBuffer。