我是xcode开发人员的宝贝,我真的需要帮助。以下是我的json数据之一,我已经在输出中打印了该文本,因为我已经在屏幕上显示了该文本,但是现在我正尝试从服务器获取图像,而且我不知道该怎么做
JSON:
"MoviePhotoL" : "\/Data\/UploadFile\/cnymv-01_1.jpg",
"MoviePhotoP" : "\/Data\/UploadFile\/cnymv-02_1.jpg"
XCODE:
let userImage = iP["MoviePhotoP"] as? String
cell.imageView.image = userImage (??????)
我知道String无法转换为UIImage,我已经尝试将其转换为NSData并将NSData转换为UIImage(data),但仍然无法获得图片:'(....有人可以帮帮我吗??我真的需要帮助
答案 0 :(得分:0)
这些路径似乎相对于另一个来源。
您需要生成或获取一个绝对URL,以便您可以访问图像。
现在您只有一个简单的字符串,仅此而已,就无法将其转换为数据或图像。
您需要一个可放入浏览器并加载图像的字符串。
一旦能够做到,就可以在应用程序中加载图像。
示例:
func getImage(from string: String) -> UIImage? {
//2. Get valid URL
guard let url = URL(string: string)
else {
print("Unable to create URL")
return nil
}
var image: UIImage? = nil
do {
//3. Get valid data
let data = try Data(contentsOf: url, options: [])
//4. Make image
image = UIImage(data: data)
}
catch {
print(error.localizedDescription)
}
return image
}
//1. Get valid string
let string = "https://images.freeimages.com/images/large-previews/f2c/effi-1-1366221.jpg"
if let image = getImage(from: string) {
//5. Apply image
cell.imageView.image = image
}
注意:Data(contentsOf:options:)
是同步的,可能会降低性能。图像越大,锁定线程的时间越长。
通常,您会在后台线程中执行如此繁重的任务,并在主线程上更新UI,但是...为了使答案简单,我选择不显示它。