我正在使用 java 2 objective-c convector 来创建 iOS 应用程序。这个对流器:http://code.google.com/p/j2objc/
这是我第一次使用 objective-c。所以我无法解决以下问题:
原来我有这条线。
static final short[] ar = new short[]{(short)0, (short)0, (short)1,(short)0};
在 Java2ObjC 之后我得到了这个。编译器在这里给我一个错误(short、int、double 不能转换为 id):
NSArray * const ar = [NSArray arrayWithObjects:(short)0, (short)0, (short)1, (short)0]
double 值同样的问题。
用值初始化最终静态常量数组的正确方法是什么?
我一直在 windows 中使用 used converter。现在我知道那是错误的。仅在 MacO 中使用 j2ObjC
最佳答案
问题是 NSArray
只能容纳 NSObject
或派生类:
NSArray * const ar = [NSArray arrayWithObjects:[NSNumber numberWithShort:0], [NSNumber numberWithShort:0], [NSNumber numberWithShort:1], [NSNumber numberWithShort:0], nil];
或使用新的速记符号:
NSArray * const ar = @[[NSNumber numberWithShort:0], [NSNumber numberWithShort:0], [NSNumber numberWithShort:1], [NSNumber numberWithShort:0]];
或者使用普通的 C 数组:
short const ar[4] = {0,0,1,0};
关于Java 2 Objective-C NSArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19423436/