데이터베이스에서 데이터를 읽을 수 없습니다. 탭바드 컨트롤러가있는 앱이 있습니다. 첫 번째 탭에서 iphone 카메라는 바코드에서 사진을 찍어 그 결과를 다른보기 (CameraReturnDetailViewController)로 보냅니다. CameraReturnDetailViewController에서 는 savebutton이며, 여기 저장 버튼의 코드입니다 :TableView가 모든 데이터 (CoreData)를 표시하지 않습니다. - 응용 프로그램 오류
이- (IBAction)saveAndQuitScan:(id) sender {
XLog(@"saveAndQuitScan button wurde geklickt!");
ProjectQRCodeAppDelegate *appDelegate = [[UIApplication sharedApplication]delegate];
NSManagedObjectContext *context = [appDelegate managedObjectContext];
NSManagedObject *newData;
newData = [NSEntityDescription insertNewObjectForEntityForName:@"BarcodeDaten" inManagedObjectContext:context];
[newData setValue:dataLabel.text forKey:@"Barcode_CD"];
NSError *error;
[context save:&error];
//Aktuelle ansicht (self) animiert verlassen
[self dismissModalViewControllerAnimated:YES];
// Nachdem die ansicht verlassen wurde,
// auf das zweite Tab wechseln(scanverlauf)
/** TO DO - Funktioniert noch nicht **/
[self.tabBarController setSelectedIndex:1];
}
이제 내 목표는 두 번째 탭의 타바을 보여주는 것입니다하는의 TableView (ScansViewController)에서 :
- (void)viewDidLoad {
[super viewDidLoad];
if (managedObjectContext_ == nil)
{
managedObjectContext_ = [(ProjectQRCodeAppDelegate *)[[UIApplication sharedApplication]delegate] managedObjectContext];
NSLog(@"After managedObjectContext: %@", managedObjectContext_);
}
myTableView = [[UITableView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame] style:UITableViewStylePlain];
myTableView.delegate = self;
myTableView.dataSource = self;
myTableView.autoresizesSubviews = YES;
self.navigationItem.title = @"Code Liste";
self.view = myTableView;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [itemsList count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
}
return cell;
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSString *selectDay = [NSString stringWithFormat:@"%d", indexPath.row];
TableDetailViewController *fvController = [[TableDetailViewController alloc] initWithNibName:@"TableDetailViewController" bundle:[NSBundle mainBundle]];
fvController.selectDay = selectDay;
[self.navigationController pushViewController:fvController animated:YES];
[fvController release];
fvController = nil;
}
- (void) configureCell:(UITableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath {
NSManagedObject *managedObject = [self.fetchedResultsController objectAtIndexPath:indexPath];
cell.textLabel.text = [[managedObject valueForKey:@"Barcode_CD"] description];
}
- (NSFetchedResultsController *) fetchedResultsController {
if (fetchedResultsController_ !=nil) {
return fetchedResultsController_;
}
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"BarcodeDaten" inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];
[fetchRequest setFetchBatchSize:20];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"Barcode_CD" ascending:NO];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:nil cacheName:@"Root"];
aFetchedResultsController.delegate = self;
self.fetchedResultsController = aFetchedResultsController;
[aFetchedResultsController release];
[fetchRequest release];
[sortDescriptor release];
[sortDescriptors release];
NSError *error = nil;
if (![fetchedResultsController_ performFetch:&error]) {
XLog(@"Error: %@, %@", error, [error userInfo]);
abort();
}
return fetchedResultsController_;
}
때문에 캐치되지 않는 예외 'NSInternalInconsistencyException', 이유에 " 응용 프로그램을 종료 : 내가 두 번째 탭 (ScansViewController)를 choosed 할 때 처음에는
난이 오류가 '+ entityForName : 엔티티 이름에 대한 NSManagedObjectModel을 찾을 수 없습니다'BarcodeDaten '' "
이름은 정확하지만 내 실수는 이해하지 못합니다.
Tableview에 데이터가 표시되지 않는 이유는 무엇입니까?
내가 놓친 것이 있습니까? 아니면 뭔가 잘못 됐어? 이것은 솔루션입니다 brush51