ios - iOS、Core Data应用中的错误通信

标签 ios objective-c core-data

有一个员工列表有一个应用程序,每个员工可以有几个任务。单击员工时,他的任务将打开。此处应用程序开始无法正常工作,即打开所有任务,而不仅仅是针对特定员工。

数据库方案: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;
    }

仅显示特定员工的任务需要更正什么?

最佳答案

我认为问题在于您在保存/添加任务数据时没有引用特定的 employee 。并获取整张 table 。您应该添加第三个键作为引用,并在提取到 TasksViewControllerViewDidLoad 时在该引用上添加谓词。获得特定的员工任务。

希望我没听错。

关于ios - iOS、Core Data应用中的错误通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36236301/

相关文章:

ios - 我应该如何保存警报应用数据?

ios - 单击时发送到实例的无法识别的选择器

ios - 检测 Swift 中按钮的点击

ios - 在 TableView 未使用的空间添加 UIButton

ios - 点击通知时启动特定的 View Controller

ios - 将 Web 服务响应数据分配给 NSManagedObject 子类

iphone - 使用 JSON 字符串使用 RestKit 将对象手动加载到核心数据中

ios - 复制和粘贴 ViewController 时 Xcode 崩溃

ios - 使用 UIImageView 动画创建流畅的动画

ios - 获取用于后台线程的 MagicalRecord NSManagedContext