我在Xcode中创建了两个关系实体,我使用了Swift。我在Core Data中建立了一个简单的关系。
公司代码
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="header" class="style2">
<div id="header2" class="style2">Public Vision</div>
</div>
<input id="showHideContainer" type="image" src="http://i.imgur.com/5LGqY2p.jpg?1" height="100" width="100" alt="On" ;>
附加代码
import Foundation
import CoreData
@objc(Company)
class Company: NSManagedObject {
@NSManaged var nameCompany: String
@NSManaged var additional: NSSet
}
我写了一个代码,它将数据添加到实体中。有用。
import Foundation
import CoreData
@objc(Additional)
class Additional: NSManagedObject {
@NSManaged var acitvityCompany: String
@NSManaged var founded: String
@NSManaged var company: Company
}
当我转移到显示实体数据的 @IBAction func saveData(sender: UIBarButtonItem) {
var companyEntity = NSEntityDescription.insertNewObjectForEntityForName("Company", inManagedObjectContext: managedObjectContext) as! NSManagedObject
var additionalEntity = NSEntityDescription.insertNewObjectForEntityForName("Additional", inManagedObjectContext: managedObjectContext) as! NSManagedObject
companyEntity.setValue(nameCompanyTextField.text, forKey: "nameCompany")
additionalEntity.setValue(activityTextField.text, forKey: "acitvityCompany")
additionalEntity.setValue(foundedTextField.text, forKey: "founded")
companyEntity.setValue(NSSet(object: additionalEntity), forKey: "additional")
managedObjectContext.save(nil)
var storyboard = UIStoryboard(name: "Main", bundle: NSBundle.mainBundle())
var navi = storyboard.instantiateViewControllerWithIdentifier("navi") as! UINavigationController
self.presentViewController(navi, animated: true, completion: nil)
// println("company \(companyEntity)")
// println("additional \(additionalEntity)")
}
时。如果我从Additional实体获取数据,我会收到错误。 CoreData:FATAL ERROR:节信息的持久缓存与当前配置不匹配。你非法改变了NSFetchedResultsController的获取请求,它的谓词或它的排序描述符,而没有禁用缓存或使用+ deleteCacheWithName:
如果我只从公司实体获取数据,那么效果很好。
我的UITableViewController
UITableViewController
答案 0 :(得分:1)
我明白了如何制作它。
var currentDate: NSDate!
// MARK: - NSFetchedResultsController
var fetchedResultsController: NSFetchedResultsController!
func fetchRequest() -> NSFetchRequest {
let fetchRequest = NSFetchRequest(entityName: "Car")
let sortDescriptor = NSSortDescriptor(key: "personCar", ascending: true)
fetchRequest.predicate = NSPredicate(format: "personRelationship.datePerson contains[c] %@", currentDate)
fetchRequest.fetchBatchSize = 50
fetchRequest.fetchLimit = 50
fetchRequest.sortDescriptors = [sortDescriptor]
println(fetchRequest)
return fetchRequest
}