我有干净的OS X Storyboards项目,使用阵列控制器我绑定了Core Data和NSTableView。它显示了数据。我可以添加/编辑数据。但是当我点击comm + Q时,Core Bindings没有保存。为什么呢?
正如你所看到的,我添加了一个特殊的' 911 Save'用于调用视图控制器内部的AppDelegate.saveAction的按钮。为什么?我不知道。我不得不创建一个,因为空白项目没有。 你的解决方案将帮助我摆脱这个按钮:)
此外,Core Bindings不会删除我选择的行 最重要的是,每次运行都会显示名称'的不同顺序。我该如何排序?
请帮忙!
无法显示我的代码,因为我还没有添加任何代码:) 应该有一种方法可以将视频添加到StackOverflow。 使用NO CODE清洁设置
答案 0 :(得分:0)
您的问题基本上与answered here的问题重复,尽管有故事板。
当你将“app delegate”对象添加到VC时,你没有创建指向[NSApp delegate]
的指针,你正在创建一个全新的AppDelegate类实例,它在视图加载时被初始化,但它肯定永远不会作为代表附加到NSApplication。 AppDelegate类中没有任何内容可以保证它是附加到应用程序的单例,因此故事板为您创建了另一个AppDelegate实例,它甚至还有一个要绑定的MOC属性。它不是app委托,因此它(可能取决于XCode样板堆栈)从不初始化该MOC。
简单的解决方法是使用以delegate
开头的密钥路径绑定应用程序。
答案 1 :(得分:0)
我没有在Storyboard中创建App Delegate的新实例,而是通过在ViewController.h中添加@property并在实现文件中指向App Delegate来创建对[AppDelegate managedObjectContext]的引用,找到了一个解决方案。 / p>
//ViewController.h
@interface ViewController : NSViewController
@property (weak, nonatomic) NSManagedObjectContext *managedObjectContext;
@end
//ViewController.m
- (NSManagedObjectContext *)managedObjectContext {
return [(AppDelegate *)[[NSApplication sharedApplication] delegate] managedObjectContext];
}
在Storyboard上,然后我将Array Controller设置为绑定到View Controller,以及设置managedObjectContext的模型键路径(ViewController类的属性)。
执行此操作后,我输入的数据仍然存在。