我很困惑为什么我不能返回将附加10个字符串的数组,但出现错误Cannot convert return expression of type '[String]' to return type 'String'
这里是代码:
import Foundation
import Firebase
class FeaturedPostsManager {
var fileArray:[String] = []
func getFeaturedPosts() -> String {
let storage = Storage.storage()
let featuredRef = storage.reference(withPath: "posts/featured")
let numOfPosts = 10
var pos = 0
while pos <= numOfPosts{
featuredRef.child("\(pos+1)")
featuredRef.downloadURL { url, error in
if let error = error{
//Handle error
}else{
CacheManager.shared.getFileWith(stringUrl: url!.absoluteString) { result in
switch result {
case .success(let url):
// do some magic with path to saved video
self.fileArray.append(url.absoluteString)
break
case .failure(let error):
// handle errror
break
}
}
}
}
pos += 1
}
return fileArray // ERROR HERE
}
}
有什么想法吗? (我尚未清理代码,甚至没有查看其余代码,因此可能还有更多错误尚未发现)。
class FeaturedPostsManager {
var fileArray:[String] = []
func getFeaturedPosts() -> [String] {
let storage = Storage.storage()
let featuredRef = storage.reference(withPath: "posts/featured")
let numOfPosts = 10
var pos = 0
while pos <= numOfPosts{
featuredRef.child("\(pos+1)")
featuredRef.downloadURL { url, error in
if let error = error{
//Handle error
}else{
CacheManager.shared.getFileWith(stringUrl: url!.absoluteString) { result in
switch result {
case .success(let url):
// do some magic with path to saved video
self.fileArray.append(url.absoluteString)
break
case .failure(let error):
// handle errror
break
}
}
}
}
pos += 1
}
return fileArray
}
}