gpt4 book ai didi

objective-c - 在 Objective-C 中返回 id 类型的二维 C 数组

转载 作者:行者123 更新时间:2023-11-29 04:47:59 25 4
gpt4 key购买 nike

我在我的 iOS 应用程序中使用 2D C id 数组。是否可以在 Objective-C 方法中返回它?作为替代解决方案,我尝试返回指向 2D C 整数数组的指针,但无法修改 2D-int 数组。

- (int (*)[8][8])board:(Piece *)piece
{

int (*layout)[8][8] = malloc(8 * 8 * sizeof(int));

//Cannot modify layout 2D C array

return layout;
}

我在 Objective-C 方面有一些经验,但在 C 方面没有经验。我是否可能在使用 C 2D 数组时不断遇到问题,因此我应该创建一个 2D 数组 Objective-C 类? iOS 开发人员会使用的更典型的方法是什么?

最佳答案

- (int **)board:(Piece *)piece
{

int **layout = malloc(8 * sizeof(int *));
for(int i=0; i<8; i++)
layout[i] = malloc(8 * sizeof(int));


return layout;
}

最后不要忘记释放内存。此外,您还可以使用一维数组和类似的东西以类似的方式访问它:

#define access(array, x, y) array[y * 8 + x]

Objective-C 中现在也删除了多维数组类,但您可以创建一个包含其他 NSArrayNSArray ,或者,谷歌是否有其他人这样做(我至少记得一个实现,但记不起它的名字)

关于objective-c - 在 Objective-C 中返回 id 类型的二维 C 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9329914/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com