【问题标题】:Cannot find type 'AWSS3TransferManagerUploadRequest' in scope在范围内找不到类型“AWSS3TransferManagerUploadRequest”
【发布时间】:2021-08-01 17:33:18
【问题描述】:

我是 Swift 的新手。由于我更新了 podfile,我在 AWSS3 中遇到了问题

Cannot find type 'AWSS3TransferManagerUploadRequest' in scope
Cannot find type 'AWSS3TransferManagerDownloadRequest' in scope

ViewController 中还有import AWSS3

我不明白这个问题是否有人也面临同样的问题

我也检查了这个https://stackoverflow.com/questions/32659346/awss3transfermanageruploadrequest-in-xcode-7

但没有帮助

    var uploadRequests = Array<AWSS3TransferManagerUploadRequest?>()
    var uploadFileURLs = Array<URL?>()    
    var downloadRequests = Array<AWSS3TransferManagerDownloadRequest?>()
    
        func download(_ downloadRequest: AWSS3TransferManagerDownloadRequest) {
            switch (downloadRequest.state) {
            case .notStarted, .paused:
                let transferManager = AWSS3TransferManager.default()
                transferManager.download(downloadRequest).continueWith(block: { (task) -> AWSTask<AnyObject>? in
                    if let error = task.error {
                        if error.domain == AWSS3TransferManagerErrorDomain as String
                            && AWSS3TransferManagerErrorType(rawValue: error.code) == AWSS3TransferManagerErrorType.paused {
                            print("Download paused.")
                        } else {
                            print("download failed: [\(error)]")
                        }
                    } else if let exception = task.error {
                        print("download failed: [\(exception)]")
                    } else {
                        DispatchQueue.main.async(execute: { () -> Void in
                            print("downloaded file url: \(downloadRequest.downloadingFileURL)")
    //                        if let index = self.indexOfDownloadRequest(self.downloadRequests, downloadRequest: downloadRequest) {
    //                            self.downloadRequests[index] = nil
    //                            self.downloadFileURLs[index] = downloadRequest.downloadingFileURL
    //                            
    //                            let indexPath = NSIndexPath(forRow: index, inSection: 0)
    //                            self.collectionView.reloadItemsAtIndexPaths([indexPath])
    //                        }
                        })
                    }
                    return nil
                })
                
                break
            default:
                break
            }
        }
        func downloadAll() {
            for (_, value) in self.downloadRequests.enumerated() {
                if let downloadRequest = value {
                    if downloadRequest.state == .notStarted
                        || downloadRequest.state == .paused {
                        self.download(downloadRequest)
                    }
                }
            }
            
    //        self.collectionView.reloadData()
        }

func listObjects() {
        let s3 = AWSS3.default()
        
        let listObjectsRequest = AWSS3ListObjectsRequest()
        listObjectsRequest?.bucket = "dice-ios"
        s3.listObjects(listObjectsRequest!).continueWith { (task) -> AnyObject? in
            if let error = task.error {
                print("listObjects failed: [\(error)]")
            }
            if let exception = task.error {
                print("listObjects failed: [\(exception)]")
            }
            if let listObjectsOutput = task.result {
                if let contents = listObjectsOutput.contents {
                    for s3Object in contents {
                        
                        let downloadingFileURL = URL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent("download").appendingPathComponent(s3Object.key!)
                        let downloadingFilePath = downloadingFileURL.path
                        
                        if FileManager.default.fileExists(atPath: downloadingFilePath) {
                            self.downloadRequests.append(nil)
                            self.downloadFileURLs.append(downloadingFileURL)
                        } else {
                            let downloadRequest = AWSS3TransferManagerDownloadRequest()
                            downloadRequest?.bucket = "dice-ios"
                            downloadRequest?.key = s3Object.key
                            downloadRequest?.downloadingFileURL = downloadingFileURL
                            
                            self.downloadRequests.append(downloadRequest)
                            self.downloadFileURLs.append(nil)
                        }
                    }
                    
                    DispatchQueue.main.async(execute: { () -> Void in
//                        self.collectionView.reloadData()
                    })
                }
            }
            return nil
        }
    }

我的代码是这样的,因为我更新了 podfile,所以我遇到了问题。我在 AWS3 中遇到了更新问题。我需要知道要替换什么。

【问题讨论】:

  • 请添加一些代码。
  • @RajaKishan 请检查现在更新的问题
  • 这是旧版本代码,现在使用 AWSS3TransferUtility
  • 您在使用github.com/aws-amplify/aws-sdk-ios 吗?因为在“存储”中,他们似乎使用了别的东西。你用的是哪个版本?似乎已经过时了。
  • 或者你想仍然使用旧代码使用旧版本 pod 2.6.27

标签: swift xcode awss3transfermanager awss3transferutility


【解决方案1】:

您需要降级 AWSS3 pod 版本。检查 pod 文件夹以查看您正在使用的工具是否存在(在我的情况下,AWSS3TransferManager.h 从当前版本中丢失,降级到具有它的版本)。

【讨论】:

    猜你喜欢
    • 2021-09-24
    • 2021-09-21
    • 2022-01-16
    • 2021-08-03
    • 2021-11-29
    • 2021-09-23
    • 1970-01-01
    • 1970-01-01
    • 2023-01-26
    相关资源
    最近更新 更多