我有一个简单的基于Core Data的Cocoa应用程序,它使用ArrayController来显示模型对象(员工)。两个按钮允许添加和删除员工。添加按钮连接到插入的绑定:数组控制器的操作但是删除按钮连接到App Delegate中的confirmDelete方法,该方法显示模态确认对话框。
如何在App Delegate的confirmDelete方法中访问Array Controller以从Array Controller(和底层商店)中删除所选对象?
答案 0 :(得分:0)
你可以这样做 -
将数组控制器绑定到app delegate
在confirmDelete方法中,检查条件后添加以下行:[yourArrayController remove:nil];
希望这会有所帮助:)
----编辑----
执行删除后请务必保存上下文,否则不会反映在持久存储中。
即。在这一行之后:
[yourArrayController remove:nil];
添加以下行:
NSError *error = nil;
if(![self.managedObjectContext save:&error]){
NSLog(@"Some Useful Message!");
}
通常,此代码用于 - applicationShouldTerminate :,当应用程序退出时,它会自动将其保存到持久存储中。
答案 1 :(得分:0)
为什么你的应用程序代表会显示这样的对话框呢?这不是应用程序代表的责任。
我建议将那个不属于该对象的任何其他东西作为应用程序的委托移动到另一个对象。在我的应用程序中,通常是拥有窗口的对象,数组控制器以及该nib中的任何其他内容,拥有(在applicationWillFinishLaunching:
中创建并在applicationWillTerminate:
中发布) )通过应用程序的委托。
清理对象图几乎总是解决任何“如何从对象B获取对象A?”的问题。