iOS和Mac OS中Core Data的独特属性

时间:2015-12-12 16:55:09

标签: ios macos core-data

我有两个相同代码的项目来测试iOS和Mac OS中唯一属性的行为,并发现它们是不同的。

首先,我创建了一个名为Person的实体,并为其添加了一个属性name。然后将此属性添加到constraints

其次,我在[_managedObjectContext setMergePolicy:NSMergeByPropertyObjectTrumpMergePolicy]; 中将- (NSManagedObjectContext *)managedObjectContext添加到AppDelegate.m

最后,我修改了viewDidLoad中的ViewController.m,如下所示:

- (void)viewDidLoad {
[super viewDidLoad];
AppDelegate *sharedDelegate = [[UIApplication sharedApplication] delegate];
// NSApplication for Mac OS
Person *salary = [NSEntityDescription insertNewObjectForEntityForName:@"Person" inManagedObjectContext:sharedDelegate.managedObjectContext];

[salary setName:@"a"];

[sharedDelegate.managedObjectContext save:nil];

NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Person"];

NSArray *result = [[sharedDelegate managedObjectContext] executeFetchRequest:request error:nil];

NSLog(@"%lu",(unsigned long)[result count]);
for (Person *item in result) {
    NSLog(@"%@",[item name]);
}

}

在我多次运行这两个项目之后,我发现iOS中保证属性的唯一性,而在Mac OS中则不正确。它是一个存在的错误,还是我以错误的方式完成了测试?

0 个答案:

没有答案