我在类中声明了这样的变量:
Entity *array[BOARD_SIZE][BOARD_SIZE];
我需要设置一个允许我访问(读取)数组元素的@property,或者一个返回引用的函数,以便我可以访问数组元素。
- ( ??? ) getEntityArray
{
return ???;
}
或
@property (????) Entity ??? ;
我真的需要处理以这种方式声明的数组。
有什么建议吗?
谢谢!
答案 0 :(得分:4)
答案 1 :(得分:0)
您可以执行以下操作之一 - 使用typedef使其更易于处理。
你的.h文件中的:
#define BOARD_SIZE 32
typedef NSString *EntityArrayPtr[BOARD_SIZE][BOARD_SIZE];
@interface EntityTestWithNSString : NSObject {
EntityArrayPtr *x;
NSString *tempStrs[15][15];
}
@property NSString **tempStrs;
@end
你的.m文件中的:
- ( EntityArrayPtr *) getEntityArray
{
return x;
}
- (NSString **) getStringArrays
{
return &tempStrs[0][0];
}
我刚编译了这个并且编译了。我会留给你看看哪种方式最适合你的情况。
你可以制作一些方法来抓住你需要的index1.index2中的一个实体......
我肯定会让方法完全返回你需要的对象,而不是传递一个数组指针,让其他一些对象乱七八糟。
答案 2 :(得分:0)
虽然Rob的回答是有效的,但问题本身很有趣。 Objective C只是标准C之上的一层,所以关于返回数组类型的问题是有效的。
问题的答案非常简单:无法在C中返回数组类型。您只能返回指针。返回指针的问题是调用者不知道多维数组的维度,因此不能将返回的值用作多维数组。