ユーザーから渡された情報を detailTableViewController に保存するときにバグがあります。講義を押してデバッガを強制すると、coredataジョブなどを実行し続けます。
ここに私の構造があります: ユーザーが塗りつぶしてからコアデータに渡す staticcells を提示する detailTableViewController。MainTableViewController をポップするためのデリゲートを実装します。
PhraseDetailTableViewController.h:
#import <UIKit/UIKit.h>
#import "Phrase.h"
@class PhraseDetailTableViewController;
@protocol AddPhraseTVCDelegate
- (void) theSaveButtonOnThePhraseDetailWasTapped:(PhraseDetailTableViewController *) controller;
@end
@interface PhraseDetailTableViewController : UITableViewController
@property (strong,nonatomic) NSManagedObjectContext *managedObjectContext;
@property (nonatomic,weak) id <AddPhraseTVCDelegate> delegate;
@property (strong, nonatomic) IBOutlet UITextField *phraseMotivationTextField;
- (IBAction)save:(id)sender;
@end
PhraseDetailTableViewController.m :
- (void)save:(id)sender
{
NSLog(@"Telling the PhraseDetailTableViewController Delegate that Save was tapped on the PhraseDetailTableViewController");
Phrase *phrase = [NSEntityDescription insertNewObjectForEntityForName:@"Phrase" inManagedObjectContext:self.managedObjectContext];
phrase.motivation = phraseMotivationTextField.text;
NSLog(@"la phrase est %@", phrase.motivation);
[self.managedObjectContext save:nil];
[self.delegate theSaveButtonOnThePhraseDetailWasTapped:self];
NSLog(@"le message savebuttononethe.. a ete envoyé");
}
メインに委任しました。ここに.Hと.mがあります
PhraseTableViewController.h :
#import <UIKit/UIKit.h>
#import "PhraseDetailTableViewController.h"
#import "CoreDataTableViewController.h"
#import "Phrase.h"
@interface PhraseTableViewController : CoreDataTableViewController <AddPhraseTVCDelegate>
@property (strong,nonatomic) NSFetchedResultsController *fetchedResultsController;
@property (strong,nonatomic) NSManagedObjectContext *managedObjectContext;
@end
PhraseTableViewController.m (デリゲートを渡し、デリゲート メソッドを受け取る場所を抽出):
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if([segue.identifier isEqualToString:@"Add Phrase Segue"])
{
NSLog(@"Seeting PhraseTVC as a delegate of PhraseDetailTableViewController");
PhraseDetailTableViewController *phraseDetailTableViewController= segue.destinationViewController;
phraseDetailTableViewController.delegate=self;
phraseDetailTableViewController.managedObjectContext=self.managedObjectContext;
}
}
- (void)theSaveButtonOnThePhraseDetailWasTapped:(PhraseDetailTableViewController *)controller
{
[controller.navigationController popViewControllerAnimated:YES];
NSLog(@"c'est la methode en elle meme qui chie");
}
Main/detail とその継承されたデリゲートのサブクラス化に関係があると思います。しかし、このバグが正確に何を意味するのかわかりません:s
チアーズ、ルイス