Hi Andrii,
Yeah in my case the ResponseHandler is not called at all. The class is as follows:
import Foundation
@objcMembers
class Alert: NSObject, NSCoding {
// MARK: Properties
var deviceId: String
var coin: String
var criteria: String
var value: Double
var dateCreated: String
var enabled: Bool
var objectId : String?
var price: Bool?
var volAUD: Bool?
var volUSD: Bool?
// MARK: Archiving paths
static let DocumentsDirectory = FileManager().urls(for: .documentDirectory, in: .userDomainMask).first!
static let ArchiveURL = DocumentsDirectory.appendingPathComponent("Alerts")
// MARK: Types
struct PropertyKey {
static let coin = "coin"
static let criteria = "criteria"
static let value = "value"
static let dateCreated = "dateCreated"
static let enabled = "enabled"
static let objectId = "objectId"
static let deviceId = "deviceId"
static let price = "price"
static let volAUD = "volAUD"
static let volUSD = "volUSD"
}
// MARK: Initialisation
override init() {
self.coin = "coin"
self.criteria = "criteria"
self.value = 0
self.dateCreated = "dateCreated"
self.enabled = true
self.objectId = "object"
self.deviceId = "deviceId"
self.price = false
self.volAUD = false
self.volUSD = false
}
init?(deviceId: String, coin: String, criteria: String, value: Double, dateCreated: String, enabled: Bool, objectId: String?, price: Bool?, volAUD: Bool?, volUSD: Bool?) {
self.deviceId = deviceId
self.coin = coin
self.criteria = criteria
self.value = value
self.dateCreated = dateCreated
self.enabled = enabled
self.objectId = objectId
self.price = price
self.volAUD = volAUD
self.volUSD = volUSD
}
// MARK: NSCoding
func encode(with aCoder: NSCoder) {
aCoder.encode(deviceId, forKey: PropertyKey.deviceId)
aCoder.encode(coin, forKey: PropertyKey.coin)
aCoder.encode(criteria, forKey: PropertyKey.criteria)
aCoder.encode(value, forKey: PropertyKey.value)
aCoder.encode(dateCreated, forKey: PropertyKey.dateCreated)
aCoder.encode(enabled, forKey: PropertyKey.enabled)
aCoder.encode(objectId, forKey: PropertyKey.objectId)
aCoder.encode(price, forKey: PropertyKey.price)
aCoder.encode(volAUD, forKey: PropertyKey.volAUD)
aCoder.encode(volUSD, forKey: PropertyKey.volUSD)
}
required convenience init?(coder aDecoder: NSCoder) {
let deviceId = aDecoder.decodeObject(forKey: PropertyKey.deviceId) as! String
let coin = aDecoder.decodeObject(forKey: PropertyKey.coin) as! String
let criteria = aDecoder.decodeObject(forKey: PropertyKey.criteria) as! String
let value = aDecoder.decodeDouble(forKey: PropertyKey.value)
let dateCreated = aDecoder.decodeObject(forKey: PropertyKey.dateCreated) as! String
let enabled = aDecoder.decodeBool(forKey: PropertyKey.enabled)
let objectId = aDecoder.decodeObject(forKey: PropertyKey.objectId) as? String
let price = aDecoder.decodeObject(forKey: PropertyKey.price) as? Bool
let volAUD = aDecoder.decodeObject(forKey: PropertyKey.volAUD) as? Bool
let volUSD = aDecoder.decodeObject(forKey: PropertyKey.volUSD) as? Bool
self.init(deviceId: deviceId, coin: coin, criteria: criteria, value: value, dateCreated: dateCreated, enabled: enabled, objectId: objectId, price: price, volAUD: volAUD, volUSD: volUSD)
}
}