我有一个像Snapchat之类的应用。在一个表VC上,我提取所有介质1(第一个介质),然后在其中一个介质上点击时,将带您到表VC 2,在其中格式化快照随附的数据到表VC 1中(我保存了快照)到发布对象)。
然后,当用户点击表2中唯一的单元格时,他将被带到VC 3表中,所有媒体都像手套一样填满了屏幕。
我的问题:如何制作第一张媒体,以便您在转至表3时可以立即使用?
目前,我正在执行以下操作:
//numberMedia is always "media1" here
if self.selectedPost?.media[0].imageURLString != nil {
print("thsi is an image")
let media = InterimMediaObject(imageURLString: (self.selectedPost?.media[0].imageURLString)!, timeStamp: (self.selectedPost?.media[0].timeStamp)!, numMedia: numberMedia)
media.postID = self.selectedPost?.media[0].postID
self.selectedPost?.interimMedia.append(media)
self.selectedPost?.interimMedia[0].image = self.getImage(urlString: (self.selectedPost?.interimMedia[0].imageURLString!)!)
print((self.selectedPost?.interimMedia[0].imageURLString!), "<-- here is img val??????")
} else {
print("this is a video")
print((self.selectedPost?.media[0].videoURLString)!, "<--- this has val?")
self.selectedPost?.interimMedia.append(InterimMediaObject(videoURLString: (self.selectedPost?.media[0].videoURLString)!, timeStamp: (self.selectedPost?.media[0].timeStamp)!, numMedia: numberMedia, thumbnailString: (self.selectedPost?.media[0].thumbnail)!))
self.selectedPost?.interimMedia[0].thumbnailImage = self.getImage(urlString: (self.selectedPost?.interimMedia[0].thumbnailString!)!)
self.selectedPost?.interimMedia[0].videoURL = self.getVideoURL(stringUrl: self.selectedPost?.interimMedia[0].videoURLString!)
self.selectedPost?.interimMedia[0].postID = self.selectedPost?.media[0].postID
print(self.getVideoURL(stringUrl: self.selectedPost?.interimMedia[0].videoURLString!), "<-- nil or nil? TEWICE")
}
getImage()或getVideo()都将运行,我发现它很慢。那就是:我需要大约1-3秒才能点击表3,否则视图将需要时间来加载。
我想使它尽可能快。我该如何实现?
答案 0 :(得分:2)
有一种唯一的方法可以使异步外观同步,即通过预取它们,在您的情况下,请点击第二个vc中的单元格,然后获取图像/视频并进行导航,以使此过程更快,您需要提取第二个vc的viewDidLoad
中的媒体,因此,如果用户转到第三个vc,则完成提取的可能性很高,在firstVc中进行提取也会使其更快,但导航的可能性很小它将从用户网络中删除,因为您将在那里保存所有可见媒体