如何简单地返回包含字符串的数组

问题描述 投票:0回答:1

我很困惑为什么我不能返回将附加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
    }
 }

有什么想法吗? (我尚未清理代码,甚至没有查看其余代码,因此可能还有更多错误尚未发现)。

arrays swift
1个回答
0
投票
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 
    }
 }
© www.soinside.com 2019 - 2024. All rights reserved.