[英]Java 2 Objective-C NSArray
我正在使用Java 2 Objective-C對流器來創建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]
雙精度值也存在同樣的問題。
用值初始化最終靜態常量數組的正確方法是什么?
我曾經在Windows中使用過轉換器。 現在我看到那是錯誤的。 僅在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};
您沒有使用j2objc,而是使用https://code.google.com/p/java2objc/ 。 完全獨立的項目,不幸的是名稱相似。
請更新您的問題以引用正確的項目。
這是在Objective-C中添加多個對象的簡短示例
NSArray *consArr=[[NSArray alloc]initWithObjects:[NSNumber numberWithShort:0],
[NSNumber numberWithDouble:0], [NSNumber numberWithInt:1],nil];
您可以使用“ arrayWithObjects”方法初始化數組。 您應該只添加對象,像這樣
NSNumber * number1 = [NSNumber alloc] initWithShort:0];
NSNumber * number2 = [NSNumber alloc] initWithShort:0];
然后,
NSArray * const ar = [NSArray arrayWithObjects:number1,number2, nil];
應該管用
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.