Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Serialization 将数据与标识关联_Serialization - Fatal编程技术网

Serialization 将数据与标识关联

Serialization 将数据与标识关联,serialization,Serialization,假设我们有一千头牛排队挤奶。如果我们想知道某一特定奶牛的排队等待时间,那么仅仅测量队列入口和出口处的到达时间是不够的:奶牛不一定遵循FIFO协议。每个到达时间测量必须与heffer独有的RFID测量配对 通过选择特定的RFID数据,即特定的cow,两个到达时间可用于计算等待时间 问题 组合数据的实践的名称是什么,或者在本例中,将RFID附加到测量数据点,如上述示例所示 我正在努力理解你的问题。也许您的示例的解决方案是: 您有一个自定义类 class Cow { var rfidTag: St

假设我们有一千头牛排队挤奶。如果我们想知道某一特定奶牛的排队等待时间,那么仅仅测量队列入口和出口处的到达时间是不够的:奶牛不一定遵循FIFO协议。每个到达时间测量必须与heffer独有的RFID测量配对

通过选择特定的RFID数据,即特定的cow,两个到达时间可用于计算等待时间

问题
组合数据的实践的名称是什么,或者在本例中,将RFID附加到测量数据点,如上述示例所示

我正在努力理解你的问题。也许您的示例的解决方案是:

您有一个自定义类

class Cow {
  var rfidTag: String?
  var queueEnteredAt: Date?
  var queueExitedAt: Date?
}  
其中,rfidTag在已知后立即初始化

对于所有Cow,可以使用一个数组或一组Cow实例:

  var cows: [Cow]  
必须正确初始化

现在,当cow进入或退出队列时,将扫描RFID标签,并且必须访问相应的cow实例:

  let scannedCow = cows.filter { $0.rfidTag == scannedRFIDtag }.first  
调用一个函数来设置此cow的相应属性queueEnteredAt或QueueExitDat,例如:

最终,您可以对数组进行任何类型的统计。 PS:我不确定这是否有帮助,因为你的问题的标签是序列化的,并且在编辑你的问题时,你问了关于命名的问题

编辑:

如果RFID扫描仪在一个单独的线程上交付scannedRFIDtag,那么您可能确实存在序列化问题,因为两个线程可能会尝试访问cows数组并同时在那里设置属性。在这种情况下,您需要序列化访问,如果只需做很少的工作,可以通过将操作重定向到主队列来完成:

  DispatchQueue.main.async {
    // serialised operations
  }  
或通过设置串行访问队列:

private let serialAccessQueue = DispatchQueue(label: "com.xxx.yyy“)
在那里工作:

  serialAlertQueue.sync {
    // serialised operations
  }  

您提出了一个问题,但您的问题是什么?谢谢您的提问。希望现在一切都清楚了。如果没有,建议或问题将不胜感激
  serialAlertQueue.sync {
    // serialised operations
  }