2012-03-11 9 views
4
@interface SimataDetailViewController() 

@property Simata *simata; 

@property (nonatomic, copy) NSMutableArray *simataList; 

@end 

@implementation SimataDetailViewController 

@synthesize simataDataController=_simataDataController; 
@synthesize category=_category; 
@synthesize simata=_simata; 
@synthesize simataList=_simataList; 

#pragma mark - Managing the detail item 



- (void) getSimataForCategory: (NSString *) inputCategory { 

    unsigned count = [self.simataDataController.masterList2 count]; 


    while (count--) { 

     if ([[[self.simataDataController objectSimataInListAtIndex:count] categoryCode] isEqual:inputCategory]){ 
      self.simata= [self.simataDataController objectSimataInListAtIndex:count]; 

      [self.simataList addObject:self.simata];      
     } 

    } 

    NSLog(@"count, %u", [self.simataList count]); 


} 

안녕하세요. 첫 번째 게시물입니다.NSMutableArray 배열에 객체를 추가 할 수 없습니다.

배열 에 객체 self.simata을 추가하려고하지만 배열에 0 개의 객체가 남아 있습니다. 객체 self.simatanil이 아니며 오류가 발생하지 않습니다.

내가 뭘 잘못하고 있니?

+0

초보자로 상당히 알기 쉬운 게시물을 만들기위한 +1 크레딧) –

+0

[NSMutableArray addObject not working] 가능한 복제본 (http : // stackoverflow. co.kr/questions/1827058/nsmutablearray-addobject-not-working) 및 [항목을 NSMutableArray에 추가 할 수 없습니다] (http://stackoverflow.com/questions/7125326/cannot-add-items-to-an-nsmutablearray-ivar) –

답변

5

배열을 사용하기 전에 인스턴스를 만들었습니까?

self.simataList =[NSMutableArray array]; 

그것은 또한 당신의 self.simata 인 전무가 될 수 ... 당신은 기본 init 메소드에서 배열 인스턴스를 만들 수

편집 : (

-(id)init 
{ 
    self = [super init]; 
    if(self) 
    { 
     //do your object initialization here 
     self.simataList =[NSMutableArray array]; 
    } 
    return self; 
} 
+0

그리고 인스턴스를 어디서 만들어야합니까? 배열의 범위를 클래스 전체에두기를 원합니다. – Kostas

+0

init 메소드를 만들고 거기에 배치하는 것이 가장 좋은 해결책입니다. 위를 참조하십시오 ... – EsbenB

+0

그것은 효과가있었습니다. 다음 문을 사용하여 인스턴스를 만들어야했습니다. * self.simataList = [NSMutableArray array]; *. 도움 주셔서 감사합니다. – Kostas

1

대부분의 경우 self.simataList는 nil입니다. NSLogging self.simataList 자체를 시도하십시오.

관련 문제