Sounds plausible. Try this (untested):
extension SKNode {
convenience init?(data: Data) {
guard let archive = try? NSKeyedUnarchiver(forReadingFrom: data) else { return nil }
self.init(coder: archive)
}
convenience init?(url: URL) {
guard let data = try? Data(contentsOf: url) else { return nil }
self.init(data: data)
}
convenience init?(_ name: String, bundle: Bundle) {
guard let url = bundle.url(forResource: name, withExtension: nil) else { return nil }
self.init(url: url)
}
}