我还能如何返回数组中的项目?我在返回项目时遇到问题,因为它说我在初始化之前已经使用过它。
class func fetchEntities(className:NSString, withPredicate predicate:NSPredicate?, managedObjectContext:NSManagedObjectContext)->NSArray {
let fetchRequest: NSFetchRequest = NSFetchRequest()
let entetyDescription: NSEntityDescription = NSEntityDescription.entityForName(className as String, inManagedObjectContext: managedObjectContext)!
fetchRequest.entity = entetyDescription
if (predicate != nil) {
fetchRequest.predicate = predicate!
}
fetchRequest.returnsObjectsAsFaults = false
let items:NSArray
do {
items = try managedObjectContext.executeFetchRequest(fetchRequest)
}
catch(let error as NSError) {
NSLog(error.localizedDescription)
}
return items
}
答案 0 :(得分:1)
如果抛出异常,您应该返回NSArray?
(即可为空),因为它可以是nul
:
do {
items = try managedObjectContext.executeFetchRequest(fetchRequest)
}
catch(let error as NSError) {
NSLog(error.localizedDescription) // HERE!!!
}
return items
答案 1 :(得分:1)
您可以定义类型为ManagedObject
的数组,并将结果存储在其中,如下所示。我已经声明了一个名为users
的数组,其类型为ManagedObject
User
// Declare users array which stores objects of `User` class only.
var users = [<User>]()
// Execute request and store result into array
users = try managedObjectContext.executeFetchRequest(fetchRequest)
// return stored array
return users
我希望这会对你有所帮助。