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

希望对你有帮助。