每次扩展 return 个新实例

Does extension return new instance each time

考虑这种情况,在 extension 中声明的变量,如下所示。

extension UIViewController {
    var apiClient: APIClient {
        return APIClientImplementation()
    }
}

每次我从不同的 UIViewController 调用它时,这个扩展 return 是否是一个新实例,如果是这样,这对内存有何影响?

如果不是这会导致问题,我正在为我在其中使用该实例的所有 UIViewController 获取相同的实例,并且您可以告诉它一个 APIClient用于注入 GateWay class 的另一个实例的实例,这会导致将来出现问题吗?

Note: GateWay class is class instance that i am using to execute API requests, each chunk of services has its own gateway.

我知道我可以使用协议对所需 UIViewController 应用规则以每次创建实例。

我正在努力实现的是将来编写更少的代码,减少问题,并删除不必要的代码块。

是的,每次您从任何 viewController 访问 apiClient 时,都会返回 APIClient 的新实例。

因为 apiClient 变量是 get only 所以这本身不会导致任何内存问题。