2016-03-26 54 views
0

有一個應用程序,僱員名單有,每個僱員可以有幾個任務。點擊員工時,他的任務將打開。這裏應用程序開始工作不正確,即打開所有任務,而不僅僅是特定的員工。iOS應用程序中的錯誤通信,核心數據

數據庫方案:https://drive.google.com/open?id=0BxSMtqa62EX9TGE5eVlwX1BoaU0

項目:https://drive.google.com/open?id=0BxSMtqa62EX9RVIzcWtCaktpM0E

點擊處理:

-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ 
     if([segue.identifier isEqualToString:@"empToTasks"]){ 
       NSManagedObject *selectedDevice = [self.employees objectAtIndex:[[self.tableView indexPathForSelectedRow] row]]; 
       TasksViewController *destViewController = segue.destinationViewController; 
       destViewController.emp = selectedDevice; 
       } 
    } 

添加任務:

- (IBAction)saveTask:(id)sender{ 

     NSManagedObjectContext *context = [self managedObjectContext]; 

     NSManagedObject *newTask = [NSEntityDescription insertNewObjectForEntityForName:@"Tasks" inManagedObjectContext:context]; 
     [newTask setValue:self.tasksField.text forKey:@"task"]; 
     [newTask setValue:self.dataTasksField.text forKey:@"dateTask"]; 


     NSError *error=nil; 
     if (![context save:&error]) { 

      NSLog(@"Can't save %@ %@", error, [error localizedDescription]); 
     } 
     else { 
      UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Ура" message:@"Успешно добавлено" delegate:self cancelButtonTitle:@"ok" otherButtonTitles:nil]; 
      [alert show]; 
     } 
    } 

查看任務表:

-(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:`(NSInteger)section{ 
    return self.emp.task.count; 
    } 

    -(UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ 

     static NSString *CellIdentifier = @"Cell1"; 
     UITableViewCell*cell1 =[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

    Tasks *currentTask =[self.emp.task.allObjects objectAtIndex:indexPath.row]; 
     cell1.textLabel.text = currentTask.task; 
     return cell1; 
    } 

什麼需要糾正只顯示特定員工的任務?

+0

你在哪裏添加Task實體到Employee實體。即'[_emp addTask:newTask];' – Khundragpan

+0

@Khundragpan NSManagedObject * newTask = [NSEntityDescription insertNewObjectForEntityForName:@「Tasks」inManagedObjectContext:context]; [newTask setValue:self.tasksField.text forKey:@「task」]; [newTask setValue:self.dataTasksField.text forKey:@「dateTask」]; 這裏! –

回答

1

我認爲這個問題是因爲您保存/添加任務數據時沒有提及特定的employee。取整桌子。您應該添加第三個鍵作爲參考,並在該參考中添加一個謂詞,同時獲取TasksViewControllerViewDidLoad。獲得有關員工的任務。

希望我正確地得到了你。

相關問題