2011-12-07 44 views
0
-(id) initWithData:(NSString *)lastName: (NSString *)firstName{ 
self->firstname = firstName; 
self->lastname = lastName; 

return self; 
} 


-(void) printData { 
NSLog(@"firstname: %@", firstname); 
NSLog(@"lastname: %@", lastname); 
} 

所以每當我使用上面的init函數創建一個新的對象。並使用addObject函數將對象添加到NSMutableArray。添加自定義定義對象到NSMutableArray覆蓋整個陣列

NSMutableArray *objectArray = [[NSMutableArray alloc] init]; 

CustomObject *tempObject = [[CustomObject alloc] initWithData: @"smith": @"john"]; 
CustomObject *tempObjectb = [[CustomObject alloc] initWithData: @"brown": @"william"]; 
[objectArray addObject:tempObject]; 
[objectArray addObject:tempObjectb]; 

[[objectArray objectAtIndex:0] printData]; 
[[objectArray objectAtIndex:1] printData]; 

索引1處的對象和0總是等於最後添加到數組中的對象。
這也發生如果我使用for循環,或有超過2個對象,所有值打印時,轉到最後添加對象的值objectArray。如果有任何我缺少的信息,請告訴我。 有什麼,我失蹤?

+0

什麼是causeArray? –

+0

嘗試添加到你的'initWithData':if(self = [super init] {.. rest here here ..} return self;}。我假設你的自定義對象繼承自NSObject,因此你必須調用[super init ]。 – iska

+0

對不起,錯誤的變量名稱。 – randomNumberedUser

回答

0

解決您的initWithData:lastName:實現如下:

-(id) initWithData:(NSString *)lastName: (NSString *)firstName 
{ 

self = [super init]; 
if (nil != self) { 
    self->firstname = [firstName retain]; 
    self->lastname = [lastName retain]; 
} 

return self; 
}