2012-02-21 3 views
0

나는 문제를 메모리를 적절하게 할당하지 못하도록 좁혔다. 주제의 구성원 인 NSMutableArray가 범주의 구성원으로 있습니다. 카테고리에 항목을 채울 때 저장하지 않습니다.어떻게 그리고 어디에서 메모리를 할당합니까?

내가 어떻게 내 문제가 있다고 생각하는지 주제에 대한 메모리를 할당하는 방법을 잘 모르겠습니다. 여기

은 조각이다 :

Category *cat = [[Category alloc] init]; 
    cat.category_title = [result_categories stringForColumn:@"CATEGORY"]; 

    QuotesAppDelegate *appDelegate = (QuotesAppDelegate *)[[UIApplication sharedApplication] delegate]; 

    for (Subject *sb in appDelegate.subjects){ 

     if([cat.category_title isEqualToString:sb.category_title]){ 
      [cat.subjects addObject:sb]; 
      NSLog(@"Adding subject: %@ cat.subjects.count=%i", sb.title, cat.subjects.count); 

     } 

    } 

(위의 로그 인쇄 cat.subject 이름을 수행하지만 subjects.count를 인쇄하지 않습니다)

+0

appDelegate.subjects의 크기는 무엇으로 당신의 초기화를 변경의 첫번째? – null0pointer

+0

151은 appDelegate.subjects의 크기입니다. – jroyce

+0

앱을 실행할 때 실제로 '제목 추가 : ...'가 인쇄됩니까? –

답변

4

당신이

처럼 cat.subjects에 메모리를 할당 적이
cat.subject = [[NSMutableArray alloc] init]; 

또는

subject = [[NSMutableArray alloc] init]; 
Category 클래스의

? 그렇지 않다면해라. 이것은 문제의 하나 일 수 있습니다.


업데이트
모든 Category *cat = [[Category alloc] init];
Category *cat = [Category alloc];에서 코드를 변경하고

- (id)init { 
    self = [super init]; 
    if (self) { 
     subjects = [[NSMutableArray alloc] init]; 
    } 
    return self; 
} 
+1

배열이 메모리를 할당하고 있는지 확인하십시오. 이것은 어떤 객체도 메모리에 추가되지 않는 이유 중 하나 일 수 있습니다. – Rupesh

+0

이것이 아마도 문제라고 생각합니다. 나는 어디에도 메모리를 할당하지 않는다. 나는 이것을 추가했다 : - (id) init { self = [super init]; 과목 = [[NSMutableArray alloc] init]; if (self) { // 자기 자신을 초기화하십시오. } return self; } 다시 시도해 보면 똑같습니다. – jroyce

+0

메모리 할당에 도움이 필요합니다. 이 작업을 올바르게 수행하는 방법을 모르는 경우 ... – jroyce

관련 문제