Конвертировать Objective-C в Swift для Mock S3 - PullRequest
0 голосов
/ 22 октября 2019

Я хочу издеваться над S3, но, похоже, не могу придумать Swift, эквивалентный следующему:

- (void)listObjects:(AWSS3ListObjectsRequest *)request completionHandler:(void (^ _Nullable)(AWSS3ListObjectsOutput * _Nullable response, NSError * _Nullable error))completionHandler;

Я пробовал довольно много альтернатив:

//    func listObjects(request: AWSS3ListObjectsRequest) -> AWSTask<AWSS3ListObjectsOutput>
//    func listObjects(request: AWSS3ListObjectsRequest, completionHandler: (AWSTask<AWSS3ListObjectsOutput>) -> AnyObject?)
    func listObjects(request: AWSS3ListObjectsRequest, completionHandler: () -> AWSTask<AWSS3ListObjectsOutput>)
//    - (void)listObjects:(AWSS3ListObjectsRequest *)request completionHandler:(void (^ _Nullable)(AWSS3ListObjectsOutput * _Nullable response, NSError * _Nullable error))completionHandler;

Но я не могу получить тот, которому соответствует AWSS3. Мне нужно сделать это, чтобы смоделировать функцию в Swift.

Ответы [ 2 ]

1 голос
/ 22 октября 2019
func listObjects(request: AWSS3ListObjectsRequest, completionHandler: ((AWSS3ListObjectsOutput?, Error?) -> Void)?) {

}
0 голосов
/ 22 октября 2019

И мой objc, и swift ржавые ... но если я прав, завершениеHandler - это дополнительная / обнуляемая функция, принимающая два параметра: обнуляемый AWSS3ListObjectOutput и обнуляемый NSError;без возврата (void).

Тогда я бы сказал, что следующим предположением может быть хорошее предположение:

func listObjects(request: AWSS3ListObjectsRequest, completionHandler: ((AWSS3ListObjectOutput?, NSError?) -> Void)? = nil)

Хотя это полностью не проверено, основываясь на том, что я помню. Надеюсь, это все еще помогает!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...