NSArray Return 错误
NSArray Return Error
我还能如何 return 数组中的项目?我在使用 returning 项目时遇到问题,因为它说我在初始化之前已经使用过它。
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
}
您应该返回 NSArray?
(即可为空),因为如果抛出异常,它可以是 nul
:
do {
items = try managedObjectContext.executeFetchRequest(fetchRequest)
}
catch(let error as NSError) {
NSLog(error.localizedDescription) // HERE!!!
}
return items
您可以定义 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
希望对你有帮助。
我还能如何 return 数组中的项目?我在使用 returning 项目时遇到问题,因为它说我在初始化之前已经使用过它。
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
}
您应该返回 NSArray?
(即可为空),因为如果抛出异常,它可以是 nul
:
do {
items = try managedObjectContext.executeFetchRequest(fetchRequest)
}
catch(let error as NSError) {
NSLog(error.localizedDescription) // HERE!!!
}
return items
您可以定义 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
希望对你有帮助。