6
[newVehicle setValue: _txtFieldVehicleNumber.text forKey:@"number"];

[newVehicle setValue: lblFuelType.text forKey:@"fueltype"];

[newVehicle setValue: lblFuelUnit.text forKey:@"fuelunit"];

[newVehicle setValue: lblDistanceUnit.text forKey:@"distanceunit"];

「Vehicle」という名前のコア データ エンティティを更新したいと考えています。そのエンティティにはいくつかの属性があり、エンティティから特定の属性を選択するときに、すべてではなく一部を更新したいと考えています。それで、私は何をすべきですか??

4

2 に答える 2

17

次のことができます(おおよそのコード。エラー処理を実装し、構文を確認してください)。

NSFetchRequest *fetchRequest=[NSFetchRequest fetchRequestWithEntityName:@"Vehicle"];
NSPredicate *predicate=[NSPredicate predicateWithFormat:@"vehicle_id==%@",vehicle_id]; // If required to fetch specific vehicle
fetchRequest.predicate=predicate;
Vehicle *newVehicle=[[self.managedObjectContext executeFetchRequest:fetchRequest error:nil] lastObject];

[newVehicle setValue: _txtFieldVehicleNumber.text forKey:@"number"];

[newVehicle setValue: lblFuelType.text forKey:@"fueltype"];

[newVehicle setValue: lblFuelUnit.text forKey:@"fuelunit"];

[newVehicle setValue: lblDistanceUnit.text forKey:@"distanceunit"];

[self.managedObjectContext save:nil]
于 2013-09-27T14:52:32.613 に答える
3

コア データからエンティティを取得します。

VVdAppDelegate *delegate = (VVdAppDelegate *)[[UIApplication sharedApplication] delegate];
NSManagedObjectContext *managedObjectContext = [delegate managedObjectContext];
NSEntityDescription *entityDescriptionDelegate = [NSEntityDescription entityForName:@"entityName" inManagedObjectContext:managedObjectContext];
NSFetchRequest *requestData = [[NSFetchRequest alloc] init];
[requestData setEntity:entityDescriptionDelegate];
NSError *error;

複数の NSManagedObject がある場合

NSArray *objectsArray = [managedObjectContext executeFetchRequest:requestData error:&error];

for (NSManagedObject *object in objectsArray) {

        // Here update values of every object

}

// And save values to core data
[managedObjectContext save:&error];
于 2013-09-27T14:52:40.067 に答える