extension String { static func pointer(_ object: AnyObject?) -> String { guard let object = object else { return "nil" } let opaque: UnsafeMutableRawPointer = Unmanaged.passUnretained(object).toOpaque() return String(describing: opaque) } } // Usage: print("FileManager.default: \(String.pointer(FileManager.default))") // FileManager.default: 0x00007fff5c287698 print("nil: \(String.pointer(nil))") // nil: nil