【发布时间】:2017-04-27 17:58:00
【问题描述】:
我在一个名为的文件中有一个 C 函数(缓冲区是一个 C 结构)
BufferInit(Buffer *buffer, int32_t size)
当我转向 Swift 时,在我的 Swift 类中我声明了一个私有变量,例如
var buffer:Buffer?
在初始化函数中我这样调用
BufferInit(&buffer, 32)
但是我得到编译错误,在 Swift 中实现相同的正确方法是什么?我从 Objective-C 调用相同的 BufferInit 没有问题,但 Swift 很混乱。
编辑:这里有详细信息,
typedef struct {
void *buffer;
int32_t length;
int32_t tail;
int32_t head;
} Buffer;
错误是编译器要求我解包缓冲区并将代码更正为(我认为不正确):
BufferInit(&buffer!, 32)
【问题讨论】:
-
您能否添加您遇到的错误的确切文本以及
Buffer结构的详细信息? -
我的猜测:
buffer应该被初始化而不是可选的。 -
它应该被初始化为某个值,比如所有值 0?
标签: objective-c swift swift3