Swift 如何使用for-in循环在核心数据中创建实体?
希望你们做得很好。我的DB中有两个实体:一个是具有总楼层数属性的House,第二个是具有属性楼层数(房屋中的楼层数)的floors。有一个1对多的关系。在楼层和房间之间。如果插入3个楼层,则需要3个独立的楼层实例,以便为每个楼层分配房间。Swift 如何使用for-in循环在核心数据中创建实体?,swift,core-data,swift3,Swift,Core Data,Swift3,希望你们做得很好。我的DB中有两个实体:一个是具有总楼层数属性的House,第二个是具有属性楼层数(房屋中的楼层数)的floors。有一个1对多的关系。在楼层和房间之间。如果插入3个楼层,则需要3个独立的楼层实例,以便为每个楼层分配房间。 我正在努力解决的是如何使用for in循环创建正确的楼层数实体,以便为每个楼层分配房间数(房间是具有不同属性的不同实体)。请看下面我的尝试,如果你能尝试帮助我 class SetNumberOfFloorsVC: UIViewController { //M
我正在努力解决的是如何使用for in循环创建正确的楼层数实体,以便为每个楼层分配房间数(房间是具有不同属性的不同实体)。请看下面我的尝试,如果你能尝试帮助我
class SetNumberOfFloorsVC: UIViewController {
//MARK: - Properties
@IBOutlet private weak var numberOfFloorsTxt: UITextField!
private var managedObjectContext: NSManagedObjectContext!
private var floorNumberValue: Int16 {
get {
return Int16 (numberOfFloorsTxt.text!)!
}
}
//MARK: - Actions
override func viewDidLoad() {
super.viewDidLoad()
managedObjectContext = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
@IBAction private func setTheNumberOfFloors(_ sender: UIButton) {
if let correctType = floorNumberValue as? Int16 { // ignore the warning because I need to check if the value is for sure Int16.
let house = House(context: managedObjectContext)
house.numberOfFloors = correctType
print("\(house.numberOfFloors)")
let floor = Floors(context: managedObjectContext)
for i in 0...house.numberOfFloors {
floor.floorNumber = Int16(i)
print("\(floor.floorNumber)")
}
} else {
let screenAlert = UIAlertController(title: "Warning!", message: "Incorrect value. Only single or double digit numbers please!", preferredStyle: .alert)
screenAlert.addAction(UIAlertAction(title: "Got it!", style: .default, handler: nil))
self.present(screenAlert, animated: true, completion: nil)
}
}
// MARK: - Navigation
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let identifier = segue.identifier {
switch identifier {
case "assign number of rooms": if let vc = segue.destination as? SetNumberOfRoomsPerFloor {
vc.floorValue = floorNumberValue
}
default: break
}
}
}
您发现只创建了一个
Floors
对象?当人们开始使用CoreData时,这种问题非常常见!试试这条线,看看它是否有用:是的,它帮助了我。非常感谢您,先生。