objective-c - 如何将 C 样式数组发送到 objective-c 方法

标签 objective-c c arrays methods

我试图将 C 风格的整数数组发送到 Objective-C 方法,但在方法中我只收到数组的第一个元素。 这是一个例子:

int a[3];
a[0] = 111;   a[1] = 222;   a[2] = 333;
[self getMatrix:a];

然后

-(void)getMatrix:(int[3])matrix
{
    return;      -- breakpoint here
}

所以,当调试在断点处停止时,我有矩阵:

matrix  int *   0xbfffddd4
*matrix int 111

其他元素在哪里? 因此,2 维数组变成 1 维数组,3 维数组变成 2 维数组等。 我做错了什么?

谢谢!

附言NSArray 工作正常,但我无法想象如何在不编写大量代码的情况下使用多维(3d、4d)NSArray。

最佳答案

-(void)getMatrix:(int[3])matrix
{
    int a = matrix[0];
    int b = matrix[1];
    int c = matrix[2];
}

您会看到这些值是正确的。没有任何错误。调试器只显示 *matrix 这是第一个元素。这里的matrix本身就是一个指向整数或int *的指针。

关于objective-c - 如何将 C 样式数组发送到 objective-c 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7149914/

相关文章:

objective-c - iOS 6 游戏中心

检查由大括号组成的输入字符串是否格式正确

c# - 给定长度的数组分为 N 个部分,指定每个部分的开始和结束索引

java - 为什么我的某些方法可以访问创建的数组,而其他方法则不能? (JAVA)

ios - 分享扩展状态栏样式

objective-c - 在调用返回之前隐藏 alertview?

python - 使用 kwargs 包装一个接受可选参数结构的函数

java - 静态数组不一样 [java]

javascript - js navigator.geolocation.getCurrentLocation() 的 Cocoa WebView 显示权限对话框

c - 从程序集调用的 C 函数调用 printf 时出现段错误