Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/152.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iphonesdk2dint数组_Iphone_C++_Objective C_Arrays_Multidimensional Array - Fatal编程技术网

iphonesdk2dint数组

iphonesdk2dint数组,iphone,c++,objective-c,arrays,multidimensional-array,Iphone,C++,Objective C,Arrays,Multidimensional Array,我试图在objective-c中创建一个2d数组,但我并不想使用NSArray,因为我使用的是int,代码会很烦人:{[array objectAtIndex:x]objectAtIndex:y],更不用说我必须将NSNumber中的数字转换回来……看起来需要做很多额外的工作 我不能做以下事情吗 // .h file int aTiles[10][2]; // .m file aTiles = { { 0, 0}, // 0 { 0, 1}, // 1

我试图在objective-c中创建一个2d数组,但我并不想使用
NSArray
,因为我使用的是int,代码会很烦人:
{[array objectAtIndex:x]objectAtIndex:y]
,更不用说我必须将
NSNumber
中的数字转换回来……看起来需要做很多额外的工作

我不能做以下事情吗

// .h file
int aTiles[10][2];

// .m file
aTiles = {
        { 0,  0}, // 0
        { 0,  1}, // 1
        { 1,  5}, // 2
        { 0,  0}, // 3
        { 0,  0}, // 4
        { 0,  0}, // 5
};
它在同一行中一起工作(
inta[x][x]={…};
),但是我需要数组是公共的,这样我就可以从任何函数访问它

第二行是分号


谢谢

看起来你在//5附近多了一个逗号

您需要为aTiles声明类型吗

 int aTiles = ...

因为这也被标记为C++,所以可以使用IVAR:

std::vector<std::vector<int> > tiles;
std::向量块;
然后在对象的初始值设定项中调整大小并设置初始元素值


否则,这是全局还是ivar?它应该是常量还是可变的?

当我尝试您的原始代码时,出现了一些不同的错误,但这很有效:

// .h file
extern int aTiles[10][2];

// .m file
int aTiles[10][2] = {
        { 0,  0}, // 0
        { 0,  1}, // 1
        { 1,  5}, // 2
        { 0,  0}, // 3
        { 0,  0}, // 4
        { 0,  0}, // 5
};

这种令人敬畏的感觉怎么样…(不太好)

/.h
国际标准[10][2];
//m
INTA[10][2]={
{ 0,  0}, // 0
{ 0,  1}, // 1
{ 1,  5}, // 2
{ 0,  0}, // 3
{ 0,  0}, // 4
{ 0,  0}, // 5
};

对于(允许存在的int r=0;r。Jon Skeet在这里给出了一个很好的解释:Jon Skeet-这是您能做的最好的吗?;-)当您使用extern时,它确实有效,但当您尝试使用数组时,您会得到错误:架构i386的未定义符号:“_aTiles”,参考:[LevelMaster loadLevel]在LevelMaster.o中,注意loadLevel是我尝试使用NSLog(@“test%i”,aTiles[3][0])的函数;*当您在另一个函数中使用该数组时,您会发现该错误,您可以在Objective-C或Objective-C++(.m或.mm)中的LevelMaster中定义的函数中使用该数组?aTiles的extern和声明如何?Obj-C或Obj-C++?它们是objective-C,默认为xcode,但您可以使用C/C++方法,即int array[x][x]我想移动聊天,但不能因果报应-你上面的例子是什么?我根据他们的错误,假设他们在水平上以外的东西。H/LealMealth.M。MH不知道这是什么LOL。我不认为XCODEL可以使用它。它支持C++,但不是那么的。UHHH……这是C++中典型的2D数组。XCODER、GCC和CLAN都知道这是什么。如果他们不能支持,他们就不能说他们有现代C++支持:
// .h
int aTiles[10][2];

// .m
int a[10][2] = {
        { 0,  0}, // 0
        { 0,  1}, // 1
        { 1,  5}, // 2
        { 0,  0}, // 3
        { 0,  0}, // 4
        { 0,  0}, // 5
};

for (int r = 0; r <= 5; r++) {
   for (int c = 0; c < 2; c++) {
      aTiles[r][c] = a[r][c];
   }
}