Отображение массива данных в табличном представлении - PullRequest
0 голосов
/ 28 мая 2018

Я могу перейти к представлению таблицы, но моя таблица не показывает никаких данных и не показывает ошибку, я хочу сохранить свои данные в базовые данные и хочу отобразить их в виде таблицы, но ничего не показывает.

Вот фрагмент кода моего приложения -

При нажатии кнопки сохранения -

- (IBAction)saveDataButton:(id)sender {

    NSManagedObjectContext *context = [self manageobjectcontext];
//    NSManagedObject *newemployee = [NSEntityDescription insertNewObjectForEntityForName:@"Employee" inManagedObjectContext:context];
    if (self.employeeDB) {
        [self.employeeDB setValue:self.empName.text forKey:@"name"];
         [self.employeeDB setValue:self.empEmail.text forKey:@"email"];
         [self.employeeDB setValue:self.empDesignation.text forKey:@"designation"];
      //   [self.employeeDB setValue:self.uploadImage.imageView forKey:@"image"];
    }
    else{
        NSManagedObject *newemployee = [NSEntityDescription insertNewObjectForEntityForName:@"Employee" inManagedObjectContext:context];
        [newemployee setValue:self.empName.text forKey:@"name"];
         [newemployee setValue:self.empEmail.text forKey:@"email"];
         [newemployee setValue:self.empDesignation.text forKey:@"designation"];

    }
    NSError *error = nil;
    if (![context save:&error])
    {
        NSLog(@"Cant save %@ %@",error,[error localizedDescription]);
    }

    UIViewController *objOfView = [[UIViewController alloc]initWithNibName:@"SecondViewController" bundle:nil];
    [self.navigationController pushViewController:objOfView animated:YES];

    }

Вот мой второй код контроллера представления для отображения данных в таблицепросмотр -

-(NSManagedObjectContext *)manageobjectcontext{
    NSManagedObjectContext *context = nil;
    _delegate = (AppDelegate *)[[UIApplication sharedApplication]delegate];
    if ([_delegate respondsToSelector:@selector(persistentContainer)]) {

        context = _delegate.persistentContainer.viewContext;
    }
    return context;
}
- (void)viewDidAppear:(BOOL)animated{
    [super viewDidAppear:animated];
    NSManagedObjectContext *manageobjectcontext = [self manageobjectcontext];
    NSFetchRequest *fetchrequest = [[NSFetchRequest alloc]initWithEntityName:@"Employee"];
    self.employeeArray = [[manageobjectcontext executeFetchRequest:fetchrequest error:nil]mutableCopy];
    [self.emplyoyeeTableView reloadData];


}



- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
}

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    return self.employeeArray.count;

}
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
    return 1;

}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];
    NSManagedObject *emp = [self.employeeArray objectAtIndex:indexPath.row];
    [cell.textLabel setText:[NSString stringWithFormat:@"%@",[emp valueForKey:@"name"]]];
    [cell.detailTextLabel setText:[NSString stringWithFormat:@"%@",[emp valueForKey:@"email"]]];
    [cell.detailTextLabel setText:[NSString stringWithFormat:@"%@",[emp valueForKey:@"designation"]]];
   // [cell.imageView setImage:[emp valueForKey:@"image"]];

    return cell;
}
-(BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
    return YES;

}

enter image description here

Ответы [ 2 ]

0 голосов
/ 29 мая 2018
`- (void)viewDidLoad
 {
        [super viewDidLoad];
        self.employeeArray=[[NSMutableArray alloc] init]; //do this step
        // Do any additional setup after loading the view.
 }`
0 голосов
/ 28 мая 2018

Похоже, вы не реализуете и не настраиваете делегатов табличного представления должным образом.Попробуйте

 @interface YourClass ()<UITableViewDelegate, UITableViewDataSource> {
    - (void)viewDidLoad {
        [super viewDidLoad];
        self.employeeArray=[[NSMutableArray alloc] init]; //do this
        tableView.dataSource = self
        tableview.delegate = self
        // Do any additional setup after loading the view.
    }
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...