每次扩展 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
所以这本身不会导致任何内存问题。
考虑这种情况,在 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
所以这本身不会导致任何内存问题。