Я пришел из опыта программирования Java. Я пытаюсь установить переменные моего экземпляра classA из classB, чтобы сделать вычисления с другими переменными, которые входят в Realm и используются для связи с Bluetooth с помощью RXSwift, поэтому я пытаюсь преобразовать объектный тип Measurement в TestRes.
public class classA {
var mTestResult:TestRes?
func setTestResult(measurement:Measurement){
self.mTestResult?.id = measurement.measurementId
print("Test Id: \(self.mTestResult?.id)")
print("Measured Id: \(measurement.measurementId)")
self.mTestResult?.oilType = measurement.oilType
print("Test Oil Type: \(self.mTestResult?.oilType)")
print("Measured Oil Type: \(measurement.oilType)")
}
}
Функция ClassB справа внизу:
public class ClassB{
private func send304and306(measurement: Measurement, connectedPeripheral: Peripheral) -> Observable<Measurement> {
let response2 = MeasurementData(response: response)
//added
dump(measurement)
let results = HW2_1_Calculate()
results.setTestResult(measurement: measurement)
results.run()//CRASH HERE because my measurements are not being set
realm.add(results.mTestResult, update: true)
print("about to dump results")
dump(results)
try realm.commitWrite()
}
}
Вывод, который я получаю в отладчике от этого,
Идентификатор теста: ноль
Измеренный идентификатор: 13fvasl-f4vr-4fsb-4kgv-4kvlvnfsv
Тип масла для испытаний: ноль
Тип измеряемого масла:
Моя переменная экземпляра типа TestRes входит в базу данных области и выглядит так.
class TestRes: Object {
@objc dynamic var id:String = ""
@objc dynamic var oilType:String = ""
}
class Measurement: Object {
@objc dynamic var measurementId = UUID().uuidString
@objc dynamic var oilType: String = ""
}
На самом деле TestRes более сложен, чем измерение. В любом случае, почему экземпляру ClassA var не присваивается значение, о котором я говорю?