Ios Swift:executeFetchRequest:无法转换类型为';任何对象';

Ios Swift:executeFetchRequest:无法转换类型为';任何对象';,ios,iphone,swift,Ios,Iphone,Swift,我对executeFetchRequest有一些问题 import UIKit import CoreData class BeaconDB: NSObject { var addStatus: BeaconAddStatus! enum BeaconAddStatus{ case DUPLICATE_IN_AD case ADDED_SUCCESSFULL case ERROR_IN_ADD }

我对executeFetchRequest有一些问题

import UIKit
import CoreData

class BeaconDB: NSObject {

    var addStatus: BeaconAddStatus!


    enum BeaconAddStatus{
          case DUPLICATE_IN_AD
          case ADDED_SUCCESSFULL
          case ERROR_IN_ADD
     }


    func addNewBeacon(beacon: BeaconData) -> BeaconAddStatus{
          print("ADDNewBeacon")
          print("uuid: %@ \(beacon.uuid)")

    let appDelegate: AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
    let context: NSManagedObjectContext = appDelegate.managedObjectContext

    let entityDesc: NSEntityDescription = NSEntityDescription.entityForName("Beacon", inManagedObjectContext: context)!
    let request: NSFetchRequest = NSFetchRequest()
    let predSearch: NSPredicate = NSPredicate(format: "(uuid = %@) AND (major = %@) AND (minor = %@) \(beacon.uuid), \(beacon.major), \(beacon.minor)")

    request.entity = entityDesc
    request.predicate = predSearch

    do {
        let existingBeacon: Beacons = try context.executeFetchRequest(request)
        // success ...
    } catch let error as NSError {
        // failure
        print("Fetch failed: \(error.localizedDescription)")
    }

}

}
Mv信标类别为NSManagedObject

  import UIKit

  import CoreData

  class Beacons: NSManagedObject {

      dynamic var major : NSNumber = 0.0
      dynamic var minor : NSNumber = 0.0
      dynamic var name : NSString = ""
      dynamic var uuid : NSString = ""
   }
但这是一个错误

 let existingBeacon: Beacons = try context.executeFetchRequest(request)
无法将类型['Any Object']的值转换为指定的类型'Beacons'

请帮帮我 谢谢:)

两个问题:

  • executeFetchRequest
    始终返回对象的数组
  • 你必须用这种字体

无法转换类型为的值。。。到指定的类型。。。这意味着编译器通常需要通过强制转换类型来获得帮助,或者根本没有关系

PS:建议以单数形式命名核心数据实体,以避免混淆

let existingBeacons = try context.executeFetchRequest(request) as! [Beacons]