gpt4 book ai didi

ios - 如何使用 alamofire 图像从 json 数组检索图像?

转载 作者:行者123 更新时间:2023-11-30 11:32:13 24 4
gpt4 key购买 nike

这是我用来从 url 获取图像的代码片段,但代码崩溃并出现下面发布的错误。请有人帮我对此进行排序。

let imageurl = Gift.imagesUrl.replacingOccurrences(of: "\n", with: "", options: .regularExpression)

Alamofire.request(imageurl, method: .get).responseImage { response in
print(response)
}

错误:

 FAILURE: invalidURL("(    \"https://s3.amazonaws.com/webdevapp/app/public/spree/products/2/product/ri1.jpg?1476104874\")")

最佳答案

我不能让解决方案是:

let string = urlstring.replacingOccurrences(of: "[\n \" )(]", with: "", options: .regularExpression, range: nil)

这是一种拙劣的解决方案,而不是可行的解决方案。这是一个糟糕的解决方案。

真正的问题是什么?获取imagesUrl的解析错误。

你这样做了:

var _imagesUrl:String? 
var imagesUrl:String
{

if _imagesUrl == nil
{
_imagesUrl = ""
}
return _imagesUrl!
}

if let image = giftherData["master_variant_images"] as? NSArray
{
self._imagesUrl = String(describing: image)
}

怎么了?
不要在 Swift3+ 中使用 NSArray。使用 Swift 数组。
不要使用String(describing:),它不会做你认为它会做的事情。它正在调用对象的 description 方法(在您的例子中是 NSArray),这就是为什么它添加了 (, \n, ", )。您需要的是对象,而不是描述。

如果您的 var imagesUrl 只有一个,请不要使用“s”来调用它,或者您只对第一个感兴趣?这个名称不清楚,而且是一个误导性的名称。

应该是:

if let imageStringURLs = giftherData["master_variant_images"] as? [String] { //Yes, use a Swift Array of String, not a NSArray
self._imagesUrl = imageStringURLs.first //I took presumption that you are only interested in the first one, of not, then use an array to save them, not a String.
}

或者:

var _imagesUrl: [String]?
var imagesUrl: [String]?
//if nil as you did
if let imageStringURLs = giftherData["master_variant_images"] as? [String] { //Yes, use a Swift Array of String, not a NSArray
self._imagesUrl = imageStringURLs
}

然后,你只需这样做:

Alamofire.request(Gift.imagesUrl).responseImage{ response in
print(response)
}

或者(使用数组)

let firstURL = Gift.imagesUrl[0] //Or if it's the second let secondURL = Gift.imagesUrl[1], etc.
Alamofire.request(firstURL).responseImage{ response in
print(response)
}

关于ios - 如何使用 alamofire 图像从 json 数组检索图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50134007/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com