NSArray返回错误

时间:2015-10-14 07:22:55

标签: nsarray swift2 ios9 xcode7

我还能如何返回数组中的项目?我在返回项目时遇到问题,因为它说我在初始化之前已经使用过它。

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
}

2 个答案:

答案 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

我希望这会对你有所帮助。