我收到错误Type 'CUnsignedChar?' has no subscript members
,它在stackoverflow中产生了很多结果但是我似乎无法利用我的示例中的任何其他可用答案。它显然是一个铸造问题,但我不知道如何克服它
我正在做一个快速转换的对象,我有一个变量设置如下
var bBuff1 = [CUnsignedChar](repeating: 0, count: Int(256*512))
var backGreyBuffer : CUnsignedChar = bBuff1[0]
//..
//..
var backGreyBufferOffset : Int = localTexOffset * 512
var grey_val = 0
self.backGreyBuffer[Int(backGreyBufferOffset)]! = grey_val; //Subscript error here
这是使用in-outs的obj-c代码。
unsigned char bBuff1[256*512];
unsigned char *backGreyBuffer = &bBuff1[0];
//..
grey_val = 0;
backGreyBuffer[backGreyBufferOffset] = grey_val;
关于正确方向的任何建议都会很棒。
答案 0 :(得分:0)
我注意到代码中只需要进行一些小的更改。你应该将backGreyBuffer作为一个指针:
var bBuff1 = [CUnsignedChar](repeating: 0, count: Int(256*512))
var backGreyBuffer = UnsafeMutablePointer(mutating: bBuff1)
// ....
var backGreyBufferOffset = localTexOffset * 512
backGreyBuffer[backGreyBufferOffset] = grey_val