コアデータの編集/保存には苦労しており、これについてはいくつかの助けが必要です。私はNSFetchedResultsControllerを使用しており、コアデータのfirst_name、last_name、email_idなどの属性を持つGolferという名前のエンティティを持っています。だから、私はどのようにデータベースからゴルファーを追加したり、削除するかを知っています。コアデータエンティティ内の属性の編集/保存
私は、ViewManager(私のすべてのクラスについてある種の基本ビュー)という1つのビューコントローラに取り組んでおり、その中に2-3個のカスタムUIViewがあります。私はそれらを必要に応じていつでも出入りすることができます。
私はゴルファーをtableviewに追加してからdidSelectRow tableviewメソッドで同じViewManagerコントローラ内に表示し、次のコードを使用してテキストビューを編集ビューで更新しようとします。テーブルビューと私のために働いていない。どんな助けでも大歓迎です。
- (IBAction)saveEditGolfersView:(id)sender
{
AppDelegate * applicationDelegate = (AppDelegate *) [[UIApplication sharedApplication] delegate];
NSManagedObjectContext * context = [applicationDelegate managedObjectContext];
// Retrieve the entity from the local store -- much like a table in a database
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Golfer" inManagedObjectContext:context];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:entity];
// Set the sorting -- mandatory, even if you're fetching a single record/object
NSSortDescriptor *sortDescriptor1 = [[NSSortDescriptor alloc] initWithKey:@"first_name" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor1,nil];
[request setSortDescriptors:sortDescriptors];
[sortDescriptors release]; sortDescriptors = nil;
[sortDescriptor1 release]; sortDescriptor1 = nil;
NSError * error;
NSArray * objects = [context executeFetchRequest:request error:&error];
for(int i = 0; i<[objects count]; i++)
{
Golfer * golfguy = [objects objectAtIndex:i];
golfguy.first_name = mEditFirstName.text;
golfguy.middle_name = mEditMiddleName.text;
golfguy.last_name = mEditLastName.text;
golfguy.email_id = mEditEmailField.text;
golfguy.contactNumber = mEditContactNum.text;
golfguy.picture = mEditPictureView.image;
NSLog(@"name-%@", golfguy.first_name);
}
[request release]; request = nil;
error = nil;
[context save:&error];
[UIView animateWithDuration:0.3 delay:0 options:UIViewAnimationOptionCurveEaseOut
animations:^ {
mEditGolfersView.frame = CGRectMake(-480, mEditGolfersView.frame.origin.y, mEditGolfersView.frame.size.width, mEditGolfersView.frame.size.height);
}
completion:^(BOOL finished) {
mEditGolfersView.hidden = YES;
}];
}
おかげショーンよりも、あなたのケースでは、オブジェクトへの参照を保持することを選択します。このIBActionメソッドは、情報(名前、電子メールID、画像などのゴルファー情報を更新するとき)を保存することです。私のコードで何が問題になっていますか?私はフェッチ要求を実行する際にそれらをループしていると思いますか? –
編集コントローラの特定のゴルファーを変更しようとしていませんか?あなたは何人のゴルファーを変えようとしていますか? –
テーブルビューで行を選択した方法をタップして、特定のゴルファーを編集しようとしています。コードのルーピングは間違っていますが、編集しようとしている各ゴルファーのインデックスを取得するにはどうすればよいですか?私を助けてください! –