当我将用户传递的信息保存在 detailTableViewController 中时,我遇到了一个错误。虽然当我通过按讲座强制调试器时,它会继续执行 coredata 作业等。
这是我的结构:一个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
干杯,路易斯