2012-05-07 47 views
1

我想跨不同類的幾個方法傳輸特定容器的數組/ NSArray。在C++中,我會使用類似於結構向量的東西。NS結構等效?

,容器可能在這樣的結構來表示:

struct test 
{ 
    NSString * a; 
    NSString * b; 
    NSNumber * c; 
} 

容器基本上需要持有一些字符串和數字。

在Objective C中使用結構有沒有其他選擇?有沒有其他的「容器」可以用來發送數據?

+0

您可以繼承NSObject並給出子類3屬性(a,b,c) –

回答

2

我建議創建一個簡單的對象,這樣的事情(在我的瀏覽器編譯):

@interface Container : NSObject { 
    NSString* a; 
    NSString* b; 
    NSString* c; 
} 

@property (retain) NSString* a; 
@property (retain) NSString* b; 
@property (retain) NSString* c; 

@end 


@implementation Container 

@synthesize a, b, c; 

- (void) dealloc { 
    [a release]; 
    [b release]; 
    [c release]; 
    [super release]; 
} 
@end 
+1

這比結構更好 - Apple明確建議不要混合結構和對象,實際上,此代碼與ARC正向兼容,可以爲您節省大量頭痛。 –

2

我認爲這正是對象(@interface)的用途,實際上,objective-c類只是一天結束時的結構,蘋果開發人員文檔鼓勵您創建類而不是使用結構。

0

NS(Mutable)Dictionary可以爲這樣的事情一般容器行動,但它通常最好創建一個類,而不是使用總是具有相同密鑰的字典。