2010-11-16 143 views
0

陣列我有一個包含值類:的ObjectiveC,創建類的

@interface Params : NSObject { 
    [...] 
    NSString *fc; 
    NSString *sp; 
    NSString *x; 
    NSString *y; 
    [...] 
    @property (nonatomic, assign) NSString *fc; 
    @property (nonatomic, assign) NSString *sp; 
    @property (nonatomic, assign) NSString *x; 
    @property (nonatomic, assign) NSString *y; 
    [...] 
@end 

有可能在Objective-C創建一個數組類?像c#/ java?

MyClass[] a = new MyClass[20] ??? 
a[0].fc = "asd" ? 

或類似的東西?

感謝, 阿爾貝託

回答

2

雖然這樣做的標準方法是用NSArray,您可以用C數組也這麼做:

int numObjects = 42; 
Params ** params = malloc(sizeof(Param*) * numObjects); 
for (int i = 0; i < numObjects; ++i) { 
    params[i] = [[[Params alloc] init] autorelease]; 
} 

free(params); 

但是,使用NSArray就會簡單得多。 :)

+0

我寧願自己遞歸自動釋放方法 – 2010-11-16 17:57:35

2

你會使用標準的NSArray要做到這一點,在我的例子中,我使用的觀點,但你可以使用指針任何對象。

UIView * object = [[UIView alloc] init]; 
UIView * object2 = [[UIView alloc] init]; 
UIView * object3 = [[UIView alloc] init]; 

NSArray * array = [[NSArray alloc] initWithObjects:object,object2,object3,nil]; 

[object release];[object2 release];[object3 release];//edit 

UIView * test = [array objectAtIndex:0]; 
test.tag = 1337; 
+2

不要忘記釋放你的視圖對象 - 你的代碼泄漏內存 – Vladimir 2010-11-16 14:34:07

+2

還要注意,如果你想創建一個等同於ArrayList的東西,你想使用NSArray的可變(可修改)版本,它的子類NSMutableArray – 2010-11-16 15:30:49