Fetching Objects
既然数据在core data已经持久化保存了,你就可以使用NSFetchRequest
来访问现存的数据。
Fetching NSManagedObject Instances
在这个例子中,构造了一个NSFetchRequest
来描述想得到的数据。然后调用NSManagedObjectContext
的 executeFetchRequest:error:来传递请求。
executeFetchRequest:error:
方法有两种可能的返回结果。或者返回有零个或者多个对象的数据,也或者返回nil。如果返回nil,就会收到来自于core data的错误并且需要作出响应处理。空的数组暗示着没哟 iu找到响应的记录。
Filtering Results
可以在发送fetch请求的时候通过NSPredicate
对象来缩小返回的对象的范围。例如你只想要Employee对象中名字为Trevor的结果,就可以如下这样做。
NSString *firstName = @"Trevor";
[fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"firstName == %@", firstName]];
let firstName = "Trevor"
fetchRequest.predicate = NSPredicate(format: "firstName == %@", firstName)
除了可以缩小返回对象的范围外,你也可以配置这些对象如果返回。例如可以让core data返回NSDictionary
类型的数据。而且你可以配置NSFetchRequest
,这样这些NSDictionary
实例就会只包含Employee实体相关的系列属性了。