Swift可变数组在C中的实现

4
我是一个有用的助手,可以帮您进行文本翻译。
我正在尝试使用纯C代码访问Swift类的属性,因为我在音频线程中。
该属性声明如下:
var Triggers: [[Int]] = [[Int]]()

C将这个数组视为NSArray(不可变),因此我无法修改它的元素。将属性声明为NSMutableArray也没有帮助。
正确的方法是什么?
谢谢。
2个回答

1
如果您只需要将数组传递给C函数,则最简单的方法是使用&运算符传递指针参数,如下所示。
your_c_func(arg1, arg2, &Triggers);

如果您需要进行更高级的操作,那么您将不得不使用UnsafeBufferPointers及其相关内容。
以下是一些链接,以帮助您入门:
- Apple的Swift博客 - Russ Bishop的Unsafe Swift

0

我要说,我对Objective-C互操作的经验很少。但是个人认为,我会将不可变数组的内容分配给NSMutableArray,然后在副本上执行修改 - 如果需要的话。


我需要修改对象的属性。我将无法将NSMutableArray放回对象中。 - aguycalledalex

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接