gpt4 book ai didi

ios - Swift - 如何一次检索多个图像(GCD)?

转载 作者:行者123 更新时间:2023-11-29 01:00:25 25 4
gpt4 key购买 nike

让我给你一些关于我的应用程序本身的见解。

简而言之,我正在创建一个社交网络应用程序。每个帖子都包含一张图片个人资料照片标题。每个帖子都存在于我的 MySQL 数据库中。我正在使用自己的框架来检索每篇文章。但是,一旦我检索到每个帖子,我仍然必须使用从数据库中检索到的 URL 来检索个人资料照片图像我想一次检索所有图像,而不是按顺序运行。

截至目前,数据库中大约有 5 个帖子。为一个 帖子加载必要的图像大约需要 4 秒。所以现在我正在加载一个帖子的图像,然后按顺序检索下一个。所以整个过程大约需要 20 秒。所以说有 50 个帖子,那么加载所有帖子将花费非常长的时间。我对GCD (grand-dispatch-queues) 有一些了解,但是我不知道如何在我的应用程序中实现它。

这是我检索帖子和图片的代码:

ConnectionManager.sharedInstance.retrievePosts(UserInformationInstance.SCHOOL) {
(result: AnyObject) in
if let posts = result as? [[String: AnyObject]] {
print("Retrieved \(posts.count) posts.")
for post in posts {
let postIDCurrent = post["id"] as? Int
var UPVOTES = 0;
var UPVOTED: Bool!
var query = ""

if let profilePictureCurrent = post["profile_picture"] {
// Loading profile picture image

let url = NSURL(string: profilePictureCurrent as! String)
let data = NSData(contentsOfURL: url!)
let image = UIImage(data: data!)
UserInformationInstance.postsProfilePictures.append(image!)
print("added profile pic")
} else {
print("error")
}
if let postPictureCurrent = post["image"] {
if (postPictureCurrent as! String != "") {
// Loading image associated with post

let url = NSURL(string: postPictureCurrent as! String)
let data = NSData(contentsOfURL: url!)
let image = UIImage(data: data!)
let imageArray: [AnyObject] = [postIDCurrent!, image!]
UserInformationInstance.postsImages.append(imageArray)
print("added image pic")
}
} else {
print("error")
}
UserInformationInstance.POSTS.append(post)
}
} else {
self.loadSearchUsers()
}
}

所以我的问题是,我怎样才能同时检索所有图像,而不是一个接一个地检索?

如果有人能给出解释和一些代码就太好了:)

最佳答案

我建议修改您的方法。如果您的服务器没有问题 - 它不忙并且可以很好地访问,因此资源下载受设备网络适配器带宽 (X mbps) 的限制,那么您下载图像的方式并不重要 - 并发或顺序。

让我展示一下。同时下载10个大小为Y mb的文件的时间等于下载一个文件的时间,但这种情况下每个文件的下载速度会慢10倍:

X/10 - downloading speed per one file
Time = Amount / Speed
T = Y / (X/10) = 10 * Y / X

现在,如果您要按顺序下载:

T = 10 * (Y / X) = 10 * Y / X

我建议您在从存储中检索到帖子后立即显示它们,然后您需要开始异步下载图片并在下载后设置图片。这是业界的最佳实践,请考虑 Facebook、Twitter、Instagram 应用程序。

关于ios - Swift - 如何一次检索多个图像(GCD)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37063648/

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