我有一个核心数据模型,它有三个实体:A,B和C.A与B有一对多的关系,B与C有多对多的关系.A的删除规则 - > B是"Cascade",B - > A是"No Action".B - > C的删除规则是"No Action",C - > B是"Deny".
我在A实体上执行删除时遇到问题.我想要发生的是以下内容:
deleteObject:)这可能有点令人困惑,所以让我解释一下:当删除A时,删除所有关联的B.任何引用那些B的C都不能再引用它们了.
在我的测试中,我没有看到"Cascade"删除规则对我起作用.当我删除A时,我会processPendingChanges立即调用(只是为了确保删除已完成).然后我比较删除之前和之后NSManagedObjectContext中A和B的数量.A的实例已被正确删除,(总A的数量现在比删除前少一个).但是,B的数量保持不变.因此,似乎没有尊重"级联"删除规则.
我知道我可以手动完成A - > B关系,并手动删除每个B.然而,看起来这是Core Data免费提供的东西,所以除非Core Data不足,否则我不想这样做.有关使用"级联"删除规则的任何信息都是受欢迎的.
我有一个核心数据模型,我有一个实体A,这是一个抽象.实体B,C和D继承自实体A.实体A中定义了几个由B,C和D使用的属性.
我想在我的模型代码中利用这种继承.除了属性之外,我想知道我是否可以向实体A添加方法,这些方法在它的子实体中实现.
例如:
executeFetchRequest:检索B的所有实例我试过这个,但在调用方法时,我收到:
[NSManagedObject methodName:]:发送到实例的无法识别的选择器
我认为这是因为返回的executeFetchRequest:对象是某种代理对象.
有没有办法利用子类NSManagedObjects来利用继承?
我真的希望能够做到这一点,否则我的模型代码将负责确定它正在处理什么类型的NSManagedObject并根据类型执行特殊逻辑,这是不可取的.
任何帮助表示赞赏,提前谢谢.
我正在开发一个Mac OS X应用程序,作为它的UI的一部分,它将在其主视图中显示许多可以选择的视觉元素.这些元素可以放置在视图中的任何位置.UI将支持各种选择元素的方式:矩形选框选择,椭圆选框选择和"自由"套索选择.
我已经有矩形和椭圆选框工作了.算法非常简单; 如果元素的区域与矩形/椭圆的区域相交,则认为元素被"选中".
套索选择将像Photoshop中的现代图像处理应用程序一样工作; 用户可以单击并拖动将自行关闭的路径,并且将选择所绘制路径中包含的元素.
该算法可能比矩形/椭圆形选择复杂得多,因为选择的形式是不受限制的.我想知道是否有人有写这样的东西的经验,或者你是否可以指出我正确的方向,关于什么样的编程技术是必要的,以及这种算法最有效的方法是什么.
提前致谢.
我无法让核心数据支持的NSArrayController在我的代码中正常工作.以下是我的代码:
pageArrayController = [[NSArrayController alloc] initWithContent:nil];
[pageArrayController setManagedObjectContext:[self managedObjectContext]];
[pageArrayController setEntityName:@"Page"];
[pageArrayController setAvoidsEmptySelection:YES];
[pageArrayController setPreservesSelection:YES];
[pageArrayController setSelectsInsertedObjects:YES];
[pageArrayController setClearsFilterPredicateOnInsertion:YES];
[pageArrayController setEditable:YES];
[pageArrayController setAutomaticallyPreparesContent:YES];
[pageArrayController setSortDescriptors:[NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"index" ascending:YES]]];
BOOL result = [pageArrayController setSelectionIndex:0];
Run Code Online (Sandbox Code Playgroud)
当我尝试调用setSelectionIndex:时,它返回YES,表示选择已成功更改.但是,对pageArrayController对象的任何后续getSelectionIndex调用都返回NSNotFound.
我不明白的是,如果我将NSArrayController放入NIB,并允许NIB文件执行初始化(在Interface Builder中具有所有相同的属性),NSArrayController正常工作.
为什么行为存在差异?NIB文件是否以特殊方式初始化这些类型的对象?我的NSArrayController初始化是不正确的?
任何帮助表示赞赏.谢谢.
我有一个包含许多CALayers的NSView.当用户编辑文档时,这些CALayers会对所有编辑进行动画处理.我正在尝试为我的应用程序实现打印,但是我在正确打印这些CALayers时遇到了一些问题.
一些CALayers边界占据整个NSView,并且不需要布局,因为它们的位置永远不会改变.但是,我还有一个CALayer,其中包含大约20个小型CALayer.这些CALayers在正常编辑期间为其位置更改设置动画.但是,在尝试打印NSView时,这些小型CALayers永远不会正确布局.我想知道是否有一些特殊的事情我必须做,以确保正确定位这些图层,并允许正确绘制/打印NSView.
有没有人有打印Core Animation支持的NSView的经验?任何建议表示赞赏.