0

내 NSMutableArray를 통해 availble을 객체 유지 객체는 여러 개의 클래스 변수 (예 : title 변수)를 '잊어 버린'것처럼 보입니다. I가 붙어있다다른 방법은 제 호출 될 때 사용자 정의 가득있는 NSMutableArray가 제 객체 (있는 NSString * 제목을 포함하는 사용자 정의 클래스) (디버거에서 확인) 하나의 방법에 제대로로드됩니다 만, 전체 학급 전체

NSString *cellValue = @"ddd"; 
//NSArray * tempArray; 
Article * a; 
if([sectionTitle isEqualToString:@"Features"]) a = [featuresArticles objectAtIndex:indexPath.row]; 
if([sectionTitle isEqualToString:@"News"]) a = [newsArticles objectAtIndex:indexPath.row]; 
if([sectionTitle isEqualToString:@"Sports"]) a = [sportsArticles objectAtIndex:indexPath.row]; 
if([sectionTitle isEqualToString:@"Leisure"]) a = [leisureArticles objectAtIndex:indexPath.row]; 
if([sectionTitle isEqualToString:@"Voices"]) a = [voicesArticles objectAtIndex:indexPath.row]; 
if([sectionTitle isEqualToString:@"Editorial"]) a = [editorialArticles objectAtIndex:indexPath.row]; 
if([sectionTitle isEqualToString:@"Page 13"]) a = [page13Articles objectAtIndex:indexPath.row]; 

cellValue = [a getTitle]; 

:이 값을 찾습니다 다른 방법의 코드를

for(int i=0;i<[articleURLs count];i++) { 
    Article * a = [[Article alloc] init]; 
    [a initWithWebsite:[articleURLs objectAtIndex:i]]; 
    if([sectionTitle isEqualToString:@"Features"]) [featuresArticles addObject:a]; 
    if([sectionTitle isEqualToString:@"News"]) [newsArticles addObject:a]; 
    if([sectionTitle isEqualToString:@"Sports"]) [sportsArticles addObject:a]; 
    if([sectionTitle isEqualToString:@"Leisure"]) [leisureArticles addObject:a]; 
    if([sectionTitle isEqualToString:@"Voices"]) [voicesArticles addObject:a]; 
    if([sectionTitle isEqualToString:@"Editorial"]) [editorialArticles addObject:a]; 
    if([sectionTitle isEqualToString:@"Page 13"]) [page13Articles addObject:a]; 
    [a release]; 
} 

을하고 여기에 있습니다 : 여기

이있는 NSMutableArray에 제 객체를로드하는 코드입니다 24 시간 이상이 인터넷에 도움이되지 않습니다. 어떤 제안?

+0

, 왜 하나있는 NSDictionary/NSMutableDictionary 변수는 (등,'@ "기능"''@ "뉴스"')이 키에 따라 배열을 포함하지? – dreamlax

+0

예를 들어'articles'라는 NSDictionary를 가질 수 있고 특정 카테고리에 기사를 추가하려면 다음과 같이하면됩니다 :'[[articles objectsForKey : sectionTitle] addObject : a];', 그리고 다시 얻으려면 '[[objects objectsForKey : sectionTitle] objectAtIndex : indexPath.row];'를 사용합니다. – dreamlax

+0

"클래스 변수"란 "인스턴스 변수"(ivar)를 의미합니까? 'title' ivar가 문제 변수 중 하나이기 때문에 어떻게 선언되는지와 할당 방법의 예를 볼 수 있습니까? (예 :'Articles'' @ interface' 블록 ... – FluffulousChimp

답변

0

속성이 클래스 인터페이스에서 제대로 선언되지 않은 것 같습니다. 그것은이 유사합니다 : 당신이 변경 가능한 문자열을 사용하여 속성을 설정하면, 다음 클래스는 문자열의 불변의 사본을 만들 수 있기 때문에

@interface Article : NSObject 
{ 
} 

@property (nonatomic,copy) NSString *title; 

@end 

copy 문자열 특성에 가장 적합합니다. 단순히 retain이라면 변경 가능한 문자열은 클래스에 대해 알지 못하면 변경 될 수 있습니다. 사용자 정의 클래스 (제)에서

+0

복사하여 보관했지만 여전히 작동하지 않습니다. 사전 추천을 시도합니다. 실용적인면에서 훨씬 더 좋은 옵션) 그리고 다시 돌아온다 – eaganr

+0

NSMutableDictionary의 사용법은 훨씬 깔끔하다.하지만 여전히 행운이다. 제목 변수는 유지되지 않는다. 내가 어떻게 든 겹쳐 쓰여지고있는 것인가? 귀하의 도움 – eaganr

+0

@eaganr : 코드의 다른 부분에 문제가있을 수 있습니다. 때로는 메모리 누수가 매우 이상하게 나타납니다 .Instruments 도구를 사용하여 코드를 프로파일 링하여 무슨 일이 일어나는지 생각해보십시오. 'Article' 클래스를 할당하는 방법에 문제가있다. – dreamlax

0

, 나는 내가 클래스 Article.m 파일에 설정을 완료 후 [title retain];를 작성했습니다. 배열 변수의 거대한 숫자가보다는