2010-07-12 14 views
5

वस्तुओं को जोड़ने से यह मेरा डेटा strucure है:एक NSMutableArray संपत्ति

@interface Group : NSObject {  
    NSInteger groupID; 
    NSString *groupName;   
    NSMutableArray *elements;  
} 

@property (assign, readwrite) NSInteger groupID; 
@property (assign, readwrite) NSString *groupName; 
@property (assign, readwrite) NSMutableArray *elements; 

और साथ एक तत्व:

group [1...n] { 
    id, 
    name, 
    elements : [1...n] 
} 

मैं सभी गुणों के साथ तत्व और के रूप में समूह के लिए एक वर्ग के लिए एक वर्ग को परिभाषित:

@interface Element : NSObject { 
    NSInteger elementID; 
    NSString *elementName; 
} 
@property (assign, readwrite) NSInteger elementID; 
@property (assign, readwrite) NSString *elementName; 

दोनों वर्गों में गुण और संश्लेषण होते हैं। जब आवेदन शुरू मैं इस के साथ डेटा संरचना पर डेटा सम्मिलित:

arrGroup = [NSMutableArray array]; 
[arrGroup retain]; 
Element *element1 = [[Element alloc] init]; 
element1.elemenID = 1; 
element1.elemenName = @"Andrea"; 

Element *element = [[Element alloc] init]; 
element2.elementID = 2; 
element2.elementName = @"Andrea2"; 

Group *group = [[Group alloc] init];  
group.groupID = 1; 
group.groupName = @"Grup 1";  
[group.elements addObject:element1]; 
[group.elements addObject:element2]; 

[contact1 release]; 
[contact2 release]; 

[arrGroup addObject:group]; 

समस्या यह [: element1 group.elements addObjct] है। NSMutableArray तत्वों पर कुछ भी नहीं लिखा गया है।

क्या आप त्रुटि खोजने में मेरी सहायता कर सकते हैं? संरचना डेटा (elemens के समूह) को पुनर्प्राप्त करने के लिए एक बेहतर तरीका है?

मदद के लिए धन्यवाद! एंड्रिया

+1

क्या आप संपत्ति घोषणाएं और कोड 'तत्व' शुरू करने वाले कोड को जोड़ सकते हैं? –

+0

इस बिंदु पर मुझे लगता है कि आपको समस्या मिली है! मैं वास्तव में तत्वों को आरंभ करता हूं लेकिन मैंने अभी एक एनएसएमयूटेबलएरे * तत्व जोड़ा है; समूह ऑब्जेक्ट परिभाषा के लिए। मैंने सोचा कि @ सिंथेसाइज पर्याप्त है। मुझे नहीं पता कि कैसे तत्वों को प्रारंभ करना है ऑब्जेक्ट तत्वों के उत्परिवर्ती ऐरे –

उत्तर

15

@synthesize केवल आपकी संपत्ति के लिए गेटर और सेटटर उत्पन्न करता है, तो आपको आवश्यकता होने पर खुद को प्रारंभ करने का ख्याल रखना होगा।

म्यूटेबल सरणी प्रारंभ करने के लिए उदा। यह आपके प्रारंभकर्ता में:

- (id)init { // or however it is named 
    if ((self = [super init])) { 
     elements = [[NSMutableArray alloc] init]; 
     // ... more? 
    } 
    return self; 
} 

- (void)dealloc { 
    [elements release]; // don't forget to clean up 
    // ... more? 
    [super dealloc]; 
} 
+0

ग्रेट यह काम करता है !!!!!! धन्यवाद!!! (मैंने गलत तरीके से इनिट को परिभाषित किया, इस कारण से मैंने शामिल नहीं किया ... मुझे किताबों पर वापस जाना है .... :() –

संबंधित मुद्दे