Ter*_*ona 3 objective-c amazon-s3 amazon-web-services ios swift
我已将AWS iOS SDK ( v.2.3.6 ) 集成到我的应用程序中。它运行良好,但我注意到defaultServiceManager有一个免责声明:
“您应该使用这种单例方法而不是创建服务管理器的实例”。
我通常不会遇到这个问题,除非它的defaultServiceConfiguration是不可变的:
“此属性只能设置一次,任何后续设置器都将被忽略。”
我要求服务配置(即 identityPoolId + region)能够在运行时更改。
有什么可能的方法来解决这个问题?我希望能够在任何时候重置服务配置,但考虑到文档的内容,这不太可能。
您不应改变默认服务配置。相反,每个服务客户端都提供以下类方法:
+ register[ServiceClientName]WithConfiguration:forKey:
+ [ServiceClientName]ForKey:
Run Code Online (Sandbox Code Playgroud)
例如,对于AWSS3TransferUtility,它们是:
+ registerS3TransferUtilityWithConfiguration:forKey:
+ S3TransferUtilityForKey:
Run Code Online (Sandbox Code Playgroud)
通过这种方式,您可以在运行时为每个服务客户端传递不同的服务配置。通过遵循此模式,您可以避免无意中“污染”的默认服务配置错误,这些错误可能非常难以调试。