簡體   English   中英

Java 2 Objective-C NSArray

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM