Objective c ModalViewController不';不保存到核心数据?

Objective c ModalViewController不';不保存到核心数据?,objective-c,core-data,modalviewcontroller,Objective C,Core Data,Modalviewcontroller,iPad应用程序粉丝: 我有一个modalviewcontroller,可以在点击按钮时弹出,用户可以添加注释或更改数据输入。在对数据库进行更改时,需要刷新主窗口中的表。该数据库包含一种高级书签。我可以根据用户浏览的位置创建和删除数据库条目——没问题:我得到控制台报告“saveContext KQVC line 203”,条目会快速添加到表中 modalviewcontroller甚至会弹出(点击每个单元格中的蓝色(>)详细信息图标)现有记录的填充数据。但是,modalviewcontrolle

iPad应用程序粉丝:

我有一个modalviewcontroller,可以在点击按钮时弹出,用户可以添加注释或更改数据输入。在对数据库进行更改时,需要刷新主窗口中的表。该数据库包含一种高级书签。我可以根据用户浏览的位置创建和删除数据库条目——没问题:我得到控制台报告“saveContext KQVC line 203”,条目会快速添加到表中

modalviewcontroller甚至会弹出(点击每个单元格中的蓝色(>)详细信息图标)现有记录的填充数据。但是,modalviewcontroller上的“保存”按钮不保存。(删除功能非常有效)。以下是我的modalviewcontroller保存按钮代码:

#import "PatternViewController.h"
#import "KnittingQueenViewController.h"

 @implementation PatternViewController
 @dynamic patternName, patternNotes, patternUrl, dateAdded;
 @synthesize patternA, patternView, knittingQueenViewController;

-(IBAction)save {
    [patternA setValue:patternName.text forKey:@"patternName"];
    [patternA setValue:patternUrl.text forKey:@"patternUrl"];
    [patternA setValue:patternNotes.text forKey:@"patternNotes"];
    dateAdded = [NSDate date];
    [patternA setValue:dateAdded forKey:@"dateAdded"];
    [patternA setValue:patternLabel.text forKey:@"patternLabel"];
    [patternA setValue:pngPath forKey:@"patternPhoto"];   

    [knittingQueenViewController saveContext];
    [self dismissModalViewControllerAnimated:YES];
}
以及knittingqueenviewcontroller中的saveContext方法:

- (void)saveContext {
    NSManagedObjectContext *context = [self.fetchedResultsController managedObjectContext]; 
    NSError *error = nil;
    if (![context save:&error]) {
         // error code goes in here
    }
    NSLog(@"saveContext KQVC line 203");
    [self refreshPatternsTable];
}

我没有收到任何错误,但也没有保存的数据。我的问题:为什么不从modalviewcontroller调用saveContext方法?如果您能提供任何建议,我们将不胜感激。

是否调用了您的
save
方法?调用
knittingQueenViewController
时,它是否为非nil?
patternA
的值看起来正确吗?

是否调用了
save
方法?调用
knittingQueenViewController
时,它是否为非nil?
patternA
的值看起来正确吗?

这里的前两个问题中的一个几乎可以肯定是问题所在。@noa对Q1的回答:调用了该方法,但因为knittingQueenViewController根据该回答进行了零测试。问题2的答案是:零。所以我使用了alloc init,现在它崩溃了。在这里分配另一个不会对您有帮助,例如,它没有对您的FetchedResultsController或ManagedObjectContext的引用。您首先在哪里分配和初始化PatternViewController?来自代码?您可能需要在那里添加一些代码,将
knittingQueenViewController
设置为已创建的实例。@noa是的,它来自代码。以下是
KnittingQueenViewController
PatternViewController
的分配和初始化<代码>-(iAction)新模式{PatternViewController*控制器=[[PatternViewController alloc]initWithNibName:@“PatternViewController”捆绑包:nil];controller.modalTransitionStyle=UIModalTransitionStyleCoverVertical;controller.modalPresentationStyle=UIModalPresentationFormSheet;[self-presentModalViewController:控制器动画:是];[controller release];}你有什么建议吗?很酷。只需在调用
initWithNibName
后添加
controller.knitingQueenViewController=self;
。这里的前两个问题之一几乎可以肯定就是问题所在。@noa对Q1的回答:调用了该方法,但因为根据该回答,KnitingQueenViewController测试为零。回答对于Q2:它是零。所以我已经分配了alloc init,现在它崩溃了。在这里分配另一个不会对您有帮助-例如,它没有对您的FetchedResultsController或ManagedObjectContext的引用。您首先在哪里分配和初始化PatternViewController?从代码?您可能需要在那里添加一些设置
knittingQu的代码eenViewController
到已创建的实例。@noa是的,它来自代码。以下是
KnittingQueenViewController
PatternViewController
的分配和初始化操作-(iAction)newPattern{PatternViewController*控制器=[[PatternViewController alloc]initWithNibName:@“PatternViewController”bundle:nil];controller.modalTransitionStyle=UIModalTransitionStyleCoverVertical;controller.modalPresentStyle=UIModalPresentationFormSheet;[self-presentModalViewController:controller动画:是];[controller release];]你有什么建议?很酷。只需在调用
initWithNibName
后添加
controller.knitingQueenViewController=self;