2011-12-07 6 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 루프를 사용하거나 둘 이상의 오브젝트가있는 경우 모든 값이 인쇄되면 objectArray에 마지막으로 추가 된 오브젝트의 값으로 바뀝니다. 제가 누락 된 정보가 있다면 알려주십시오. 제가 누락 된 것이 있습니까?

+0

입니까? –

+0

이것을'initWithData'에 추가해보십시오 : if (self = [super init] {.. rest here here} return self;}. 당신의 커스텀 객체가 NSObject로부터 상속한다고 가정하기 때문에 [super init ] – iska

+0

죄송합니다. 변수 이름을 잘못 입력했습니다. – randomNumberedUser

답변

0

는 다음과 같이 initWithData:lastName: 구현을 수정 : causeArray은 무엇

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

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

return self; 
} 
관련 문제