下面的代碼是一個簡單的c#函數,返回一個int數組。 我想知道如何將它轉換成Objective-C的詢問有關Objective-C的int數組的問題
private int[] test()
{
int[] a = new int[2];
a[0] = 1;
a[1] = 2;
return a;
}
下面的代碼是一個簡單的c#函數,返回一個int數組。 我想知道如何將它轉換成Objective-C的詢問有關Objective-C的int數組的問題
private int[] test()
{
int[] a = new int[2];
a[0] = 1;
a[1] = 2;
return a;
}
下面的代碼應工作:
- (NSArray *)test {
NSArray *a = [NSArray arrayWithObjects:[NSNumber numberWithInt:1], [NSNumber numberWithInt:2], nil];
return a;
}
注意,如果我們使用[[NSArray alloc] initWithObjects:blah, blah, nil];
創建的NSArray
,我們不得不明確autorelease
,以避免內存泄漏返回之前的數組。然而,在這種情況下,NSArray
是使用便捷的構造函數創建的,所以數組已經爲autorelease
d。
第二個問題:
嘗試這種情況:
- (NSMutableArray *)test:(int)count {
NSMutableArray *a = [[NSMutableArray alloc] init];
for (int i = 0; i < count; i++) {
[a insertObject:[NSNumber numberWithInt:0] atIndex:i];
}
return [a autorelease];
}
有點啞例如:
- (NSArray*) test{
return [NSArray arrayWithObjects:[NSNumber numberWithInt:1], [NSNumber numberWithInt:2], nil];
}
一些注意事項:
有在Objective-C2種陣列的:標準C數組和可可NSArrays。 C arrays保持原始整數,但是由於C的限制必須保存對象,所以很麻煩,但是您可以在NSNumbers中包裝整數並在需要時返回int值。
NSArray *array = [NSArray arrayWithObjects:[NSNumber numberWithInt:1], [NSNumber numberWithInt:500], [NSNumber numberWithInt:12000], nil];
或替代路徑是使用普通的C代碼(在目標C是允許的):
int a[2]={1, 2};
或函數中:
int *somefunc(void){
static int a[2]={1, 2};
return b;
}
非常感謝你。 – aon 2009-11-13 15:46:27