EXC_BAD_ACCESS (code=2, address=0x16d003d98)

class Book: Codable { let name: String var author: Author? init(name: String) { self.name = name } deinit { debugPrint("Deinitialized Book") } }

class Author: Codable { let name: String let age: Int weak var book: Book? init(name: String, age: Int) { self.name = name self.age = age } deinit { debugPrint("Deinitialized Author") } }

let author = Author(name: "Ronit", age: 1) let book = Book(name: "Ronit Book") book.author = author author.book = book let encode = try? encoder.encode(author) (Why does this line give EXC_BAD_ACCESS error even though by adding weak we have removed any strong references between objects)

EXC_BAD_ACCESS (code=2, address=0x16d003d98)
 
 
Q