2011-03-21 13 views
0

NSMutableArray에 개체를 추가 할 수없는 것 같습니다. 나는 가변 배열을 만들고, 그것에 객체를 추가하고, 그 위에 반복을 시도하거나, 카운트를 얻는다. 그러나 프로그램은 seg faults를 얻는다.NSMutableArray에 추가 할 수 없습니다.

@interface myclass : NSObject 
{ 
    NSString* aname; 
} 
@property (retain) NSString* aname; 
@end 

@implementation myclass 
@synthesize aname; 
@end 

int main(int argc, char*argv[]) 
{ 
    myclass* cls = [[myclass alloc] init]; 
    [cls setAname:@"myname"]; 
    NSMutableArray* arr = [[NSMutableArray alloc] init]; 
    NSLog(@"allocated array %@", [arr count]); 
    [arr addObject:cls]; 
    NSLog(@"count %d", [arr count]); 
} 

프로그램은 두 번째 NSLog에서 충돌합니다. 뭐가 문제 야?

+0

적어도 @synthesize 후에 @end를 제거하십시오 ... –

+0

배열이 생성되는 함수는 클래스의 일부가 아닙니다. 혼란을 피하기 위해'main'으로 이름을 바꿨습니다. – 341008

답변

1

[arr count]에서 반환 된 정수를 로그 포맷터로 전달하지만이를 NSLog에 "% @"를 사용하여 처리하도록 NSLog에 알립니다. 대신 "% d"을 (를) 사용해보십시오.

+0

그건 아니야 ..'% d '을 사용하여 고칠 수는 없다. '% d'을 (를) 사용하도록 질문을 업데이트했습니다. – 341008

+0

첫 번째 NSLog 호출에 여전히 문제가 있습니다. – Vagrant

+0

처음 NSLog가 좋지 않더라도 나와 나열한 프로그램이 나를 위해 작동합니다. 2011-03-21 01 : 24 : 28.859 tmp [26157 : 207] 할당 된 배열 2011-03-21 01:24 : 28.861 tmp [26157 : 207] count 1 – Vagrant

관련 문제