1
AnyThe第一條語句不返回任何值,而第二條語句正常工作。是否可以指定屬性名稱作爲避免硬編碼的參數之一?核心數據的管理對象屬性作爲參數
let predicate = NSPredicate(format: "%@ == %@", "id","553178666d61d70c24fe4221")
let predicate = NSPredicate(format: "id == %@", "553178666d61d70c24fe4221")
這是一個完整的解決方案由於@FreeNickname
class func searchForObject(propertyName:NSString,property:NSString,className:String,single:Bool)->AnyObject?{
let fetchRequest = NSFetchRequest(entityName: className)
let predicate = NSPredicate(format: "%K == %@", argumentArray: [propertyName, property])
var appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
fetchRequest.predicate = predicate
// Execute the fetch request, and cast the results to an array of LogItem objects
var error:NSError?
if let fetchResults = appDelegate.managedObjectContext!.executeFetchRequest(fetchRequest, error: &error) as [AnyObject]? {
if let e = error{
println(e.debugDescription)
}
if single {
var object: AnyObject? = fetchResults.first
return object;
}
else{
return fetchResults
}
}
return nil;
}