Swift 如何在indexPath的cellForRow中使用多个获取请求结果数组

Swift 如何在indexPath的cellForRow中使用多个获取请求结果数组,swift,uitableview,core-data,swift3,nsfetchrequest,Swift,Uitableview,Core Data,Swift3,Nsfetchrequest,我一直想知道如何设置单元格内容以显示来自多个实体对象实例的信息。在同一单元格中,我需要显示[Floors]中的楼层编号、[Rooms]中的房间类型、[Alarms]传感器类型以及在同一阵列中找到的传感器状态。 首先,我搞不清楚在numberOfRowsInSection函数中应该做什么。要计算的数组是多少。 第二个是索引路径函数处的行的单元格。同样,我需要获得正确数组的正确索引路径。我认为这与实体之间的关系有关,但我不确定这是正确的方式。 谁能花点时间帮我一下吗?下面列出代码和图片。多谢各位 c

我一直想知道如何设置单元格内容以显示来自多个实体对象实例的信息。在同一单元格中,我需要显示[Floors]中的楼层编号、[Rooms]中的房间类型、[Alarms]传感器类型以及在同一阵列中找到的传感器状态。 首先,我搞不清楚在numberOfRowsInSection函数中应该做什么。要计算的数组是多少。 第二个是索引路径函数处的行的单元格。同样,我需要获得正确数组的正确索引路径。我认为这与实体之间的关系有关,但我不确定这是正确的方式。 谁能花点时间帮我一下吗?下面列出代码和图片。多谢各位

class InspectTheSystemTableVC: UITableViewController {

//MARK: - Properties

private var managedObjectContext: NSManagedObjectContext!

private var storedFloors = [Floors]()

private var storedRooms = [Rooms]()

private var storedAlarms = [Alarms]()

//MARK: - Actions

override func viewDidLoad() {
    super.viewDidLoad()
    managedObjectContext = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
    loadFloorData()


}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
}

private func loadFloorData() {
    let floorRequest: NSFetchRequest<Floors> = Floors.fetchRequest()
    let roomsRequest: NSFetchRequest<Rooms> = Rooms.fetchRequest()
    let alarmRequest: NSFetchRequest<Alarms> = Alarms.fetchRequest()

    floorRequest.returnsObjectsAsFaults = false
    roomsRequest.returnsObjectsAsFaults = false
    alarmRequest.returnsObjectsAsFaults = false
    do {
        storedFloors = try managedObjectContext.fetch(floorRequest)
        storedRooms = try managedObjectContext.fetch(roomsRequest)
        storedAlarms = try managedObjectContext.fetch(alarmRequest)
    }
    catch {
        print("could not load data from core \(error.localizedDescription)")
    }
}


// MARK: - Table view data source

override func numberOfSections(in tableView: UITableView) -> Int {
    return 1
}

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return 1
}


override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "system cell", for: indexPath) as! SystemCell

    return cell
}
类检查系统表VC:UITableViewController{
//标记:-属性
私有var managedObjectContext:NSManagedObjectContext!
私有var storedFloors=[楼层]()
私人var storedRooms=[房间]()
私有变量storedAlarms=[Alarms]()
//马克:行动
重写func viewDidLoad(){
super.viewDidLoad()
managedObjectContext=(UIApplication.shared.delegate为!AppDelegate)。persistentContainer.viewContext
loadFloorData()
}
重写函数didReceiveMemoryWarning(){
超级。我收到了记忆警告()
}
私有函数loadFloorData(){
让floorRequest:NSFetchRequest=楼层.fetchRequest()
let roomsRequest:NSFetchRequest=Rooms.fetchRequest()
let alarmRequest:NSFetchRequest


为所有不同类型创建不同的数据源,并在切换时重新加载tableview。谢谢您的回答,但请您更具体一点好吗?您能分享代码以便我更好地理解问题吗?3个数组是否同步?我的意思是索引0处的数据是否与t中的其他数据匹配索引为0的其他数组?或者这3个数组是否出现故障?它们是同步的
Create a Struct which holds the required  array values.

Eg . 
  Struct Entities {    
    var room = Room()
    var floor = Floor()
    var alarm = Alarms()  
 }

 var tableDataSource = [Entites]()

// Now add required data to entities array by iteration 

// tableDataSource count will be your number of rows in section count