![](/img/trans.png)
[英]Swift: Cannot convert value of type '[Any]' to specified type 'NSString'
[英]Swift: executeFetchRequest : Cannot convert value of type 'Any Object'
我有一些關於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 Beacons類是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
始終返回一個對象數組 。 let existingBeacons = try context.executeFetchRequest(request) as! [Beacons]
無法將類型的值...轉換為指定的類型...通常意味着編譯器需要通過轉換類型來提供幫助,或者根本沒有任何關系。
PS:建議以單數形式命名Core Data實體以避免混淆。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.