1

ユーザーから渡された情報を 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

チアーズ、ルイス

4

0 に答える 0