2012-10-17 2 views
2

지역 축구 클럽을위한 앱을 구축 중입니다. 모든 플레이어의 이름과 그림을 그리드에 표시하고 싶습니다. 따라서 NRGridview를 사용하고 있습니다. 하지만 내 데이터가로드되지 않습니다. NSArray 모든 선수 정보 있습니다. 여기에이 배열을 생성하는 메소드가 있습니다.NRGridView에서 핵심 데이터 데이터베이스의 데이터를 표시하지 않습니다.

- (NSArray *)getTeam 
{ 
    NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Team"]; 
    NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"sortOrder" ascending:YES]; 
     NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil]; 
    [request setSortDescriptors:sortDescriptors]; 

    NSError *error = nil; 
    NSArray *mutableFetchResults = [self.genkDatabase.managedObjectContext executeFetchRequest:request error:&error]; 
    NSLog(@"first error log %@", [error localizedDescription]); 

    if (mutableFetchResults == nil) { 
     NSLog(@"second error log %@", [error localizedDescription]); 
    }else if ([mutableFetchResults count] == 0){ 
     NSLog(@"geen resultaten voor team"); 
    }else{ 
     NSLog(@"team names: %@",[mutableFetchResults valueForKey:@"name"]); 
     return mutableFetchResults; 
    } 
    return mutableFetchResults; 

} 

그리고 이것이 제가 tableview에서하는 것입니다.

- (NRGridViewCell*)gridView:(NRGridView *)gridView cellForItemAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *MyCellIdentifier = @"MyCellIdentifier"; 

    NRGridViewCell* cell = [gridView dequeueReusableCellWithIdentifier:MyCellIdentifier]; 

    if(cell == nil){ 
     cell = [[NRGridViewCell alloc] initWithReuseIdentifier:MyCellIdentifier]; 

     [[cell textLabel] setFont:[UIFont boldSystemFontOfSize:11.]]; 
     [[cell detailedTextLabel] setFont:[UIFont systemFontOfSize:11.]]; 

    } 

    NSLog(@"players array %@",players); 
    for (int i = 0; i <= [players count]; i++) { 

     // NSData *imgData = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:[[players objectAtIndex:i]valueForKey:@"image"]]]; 
     // UIImage *image = [[UIImage alloc]initWithData:imgData]; 
     //cell.imageView.image = image; 
     cell.textLabel.text = [[players objectAtIndex:i]valueForKey:@"name"]; 
     cell.detailedTextLabel.text = [[players objectAtIndex:i]valueForKey:@"position"]; 
     return cell; 
    } 
    return cell; 
} 

NSLog는 항상 (null)을 제공합니다. 내 질문은, 지금 내가 코드 "NSArray *players = [self getTeam]. 내있는 tableview 데이터로 채울 수 있도록를? 넣어해야하는 위치

편집

그것은 섹션, 그리고 numberOfRowsInsection의 적당한 양을 나에게 돌려주지 않았다. 들어 numbersOfRowsIn 섹션 I는 4 가지 방법을 만들었습니다. 1 골키퍼 떨어져 모두를 얻을 수 whichs 방법, 수비수 1의 윙어 1, 1을 공격자에 대한. 그럼 내있는 tableview 방법에서 나는 다음을했다.

- (NSInteger)gridView:(NRGridView *)gridView numberOfItemsInSection:(NSInteger)section 
{ 
    if(section == 0){ 
     return [[self getDoelmannen]count]; 
    }else if (section == 1){ 
     return [[self getVerdedigers]count]; 
    }else if (section == 2){ 
     return [[self getMiddenvelders]count]; 
    }else{ 
     return [[self getAanvallers]count]; 
    } 
    return [[self getAanvallers]count]; 
} 

이를 하지만 여전히 내 세포 자체에 문제가 있습니다.

EDIT2 이 좋아 내 문제는 내 플레이어 배열 최대 충전으로 생각합니다. 내보기에서 다음을 수행합니다 .DidLoad

-(void)viewDidLoad{ 
    _players = [self getTeam]; 
    NSLog(@"players array: %@",_players); 
} 

다음 로그를 제공합니다.

2012-10-17 12:11:22.099 RacingGenk[63122:c07] nil 
2012-10-17 12:11:22.099 RacingGenk[63122:c07] players array: (null) 

여기가 초기화 점점되지 players처럼 보이는 getTeam

- (NSArray *)getTeam 
{ 
    NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Team"]; 
    NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"sortOrder" ascending:YES]; 
     NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil]; 
    [request setSortDescriptors:sortDescriptors]; 

    NSError *error = nil; 
    NSArray *mutableFetchResults = [self.genkDatabase.managedObjectContext executeFetchRequest:request error:&error]; 
    if (mutableFetchResults == nil) { 
     NSLog(@"nil"); 
    }else if ([mutableFetchResults count] == 0){ 
     NSLog(@"geen resultaten voor team"); 
    }else{ 
     NSLog(@"team names: %@",[mutableFetchResults valueForKey:@"name"]); 
     return mutableFetchResults; 
    } 
    return mutableFetchResults; 

} 

답변

0

내 코드입니다. [self getTeam] 전화를 viewDidLoad 방법으로 입력하고 players을 속성으로 설정할 수 있습니다.

NRGridViewUITableView 인 경우 과부하가 필요한 다른 방법이있을 수 있습니다.

예 : UITableViewtableView:numberOrRowsInSection:입니다. 이 메서드에서> 0 값을 반환하지 않으면 아무 것도 표시되지 않습니다. 또는 numberOfSectionsInTableView:. 섹션 수를 반환합니다.

사용중인 컨트롤에 대한 설명서를 확인하십시오.

업데이트 :

NSLog(@"%@", [error localizedDescription]); 
+0

네 구현 한이 방법 : 대신 (nil)을 인쇄의 오류 메시지가있을 경우 executeFetchRequest:error: 이후

가 실패, 당신은 확인해야합니다. 그리고 그것은 올바른 양의 섹션과 적당한 수의 numbers를 제공합니다 .OfRowsAtSections –

+0

나는 그것을 시도했지만 여전히 채워지지 않을 것입니다. 또한 내 생각에 그것을 시도했습니다 .WillAppear. 그러나 동일한 결과 –

+0

좋아, 문제는 viewDidLoad에서 getTeam을 호출하는 것입니다. 내 편집 된 질문을보세요. –

관련 문제