【发布时间】:2017-07-18 16:59:55
【问题描述】:
我收到错误Type 'CUnsignedChar?' has no subscript members,它在 stackoverflow 中产生了很多结果,但是我似乎无法在我的示例中使用任何其他可用的答案。这显然是一个选角问题,但我不知道如何克服它
我正在做一个 obj-c 到 swift 的转换,我有一个变量设置如下
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
这是使用输入输出的 obj-c 代码。
unsigned char bBuff1[256*512];
unsigned char *backGreyBuffer = &bBuff1[0];
//..
grey_val = 0;
backGreyBuffer[backGreyBufferOffset] = grey_val;
任何关于正确方向的建议都会很棒。
【问题讨论】:
-
你为什么在 Swift 中首先使用 char 数组?
-
有什么替代方案?
-
只是普通的
String。即使在 Objective C 中,除非您正在处理 C API,否则您不应该使用char *,而是使用NSString -
是潜力股。我只是坚持使用 obj-c 版本来连接硬件。虽然它正在连接到 C api
-
即便如此,
String和NSString可以在必要时桥接到char *。在 Swift 中使用原始 char 数组是完全没有意义的。
标签: objective-c swift subscript