Perhaps the weirdest EXC_BAD_ACCESS I've seen Swift generate
问题 I have a set of classes forming a decorator pattern so that I can do some layered caching. I have an abstract class which provides the core processing of images and contains a number of overridable functions where implementations can add their individual processing. When saving an image I have the following code: func cacheImage(_ key:String, image:UIImage?) { if let image = image { saveImage(key, image:image) } else { deleteImage(key) } backingCache?.cacheImage(key, image:image) } func