지역 축구 클럽을위한 앱을 구축 중입니다. 모든 플레이어의 이름과 그림을 그리드에 표시하고 싶습니다. 따라서 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;
}
네 구현 한이 방법 : 대신
(nil)
을 인쇄의 오류 메시지가있을 경우executeFetchRequest:error:
이후가 실패, 당신은 확인해야합니다. 그리고 그것은 올바른 양의 섹션과 적당한 수의 numbers를 제공합니다 .OfRowsAtSections –
나는 그것을 시도했지만 여전히 채워지지 않을 것입니다. 또한 내 생각에 그것을 시도했습니다 .WillAppear. 그러나 동일한 결과 –
좋아, 문제는 viewDidLoad에서 getTeam을 호출하는 것입니다. 내 편집 된 질문을보세요. –