0

コア データ内の目的のセルの値を更新する必要があります。既知の値を持つセル (ID) があります。値を見つけて置き換える必要があります。配列の要素を変更する方法を知っています。以下は、私がそれを行う方法を示しています。しかし、MyBase のフィールド (ID) を変更する必要があります。変更する必要がある値は、fromIndexPath.row と等しくなります。IndexPath.row に変更する必要がある値。

- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath
                                                           *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath {
if (fromIndexPath.section == toIndexPath.section) {

    NSFetchRequest* fetchRequest = [[NSFetchRequest alloc] init];
    NSEntityDescription* entityDescription = [NSEntityDescription entityForName:@"MyBase"
                                                         inManagedObjectContext:self.objectContext];
    [fetchRequest setEntity:entityDescription];

    empArray = [(NSArray*)[self.objectContext executeFetchRequest:fetchRequest error:nil] mutableCopy];

    MyBase *employee = [empArray objectAtIndex:fromIndexPath.row];

      [empArray removeObjectAtIndex:fromIndexPath.row];
      [empArray insertObject:objectToMove atIndex:toIndexPath.row];
}

}

4

1 に答える 1

0

コアデータを更新するには、これを試すことができます:

NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@:@"Employee"    
                                          inManagedObjectContext:self.managedObjectContext];
[request setEntity:entity];   

NSPredicate *pred = [NSPredicate predicateWithFormat:[NSString stringWithFormat:@"empId = %d", 12345]];
[request setPredicate:pred];

NSArray *empArray=[self.managedObjectContext executeFetchRequest:request error:nil];
[request release];

if ([empArray count] > 0){
    Employee *employee = [empArray objectAtIndex:fromIndexPath.row];;

    employee.empSalary=[NSNumber numberWithInt:45000];

    employee.empName=@"John";
    employee.empDesignation=@"Analysist";
    employee.empExp=@"4 Years";

    [self.managedObjectContext save:nil];
于 2013-10-15T19:56:33.040 に答える