IIl*_*Ill 0 objective-c nsurlconnection ios swift
我将图像作为 Base64 数据从我的服务器返回到我的应用程序,但在我获得用户的位置之前我不会向我的服务器询问图像,只有在用户登录到应用程序后我才会获得该位置应用程序(显示 UICollectionView)。
我的问题是collectionView:cellForItemAtIndexPath:在我为单元格准备好数据之前就被调用了。NSURLConnection在收到服务器的完整响应并且拥有 Base64 编码的图像数据之前,我可以通过哪些方式阻止调用此方法?
(这也可能与我使用作为UICollectionView并且NSURLConnectionDataDelegate我NSURLConnectionDelegate有一个单独的类(RenderMetadata())来获取图像有关。)
编辑:感谢您所有创新的答案!我已经找到了一种方法来实现我所追求的目标。我会解释,但我还没有分享我的代码,所以我认为提出它不是一个好主意,因为这只会导致混乱。基本上,我在故事板中的视图控制器中添加了一个对象,该对象引用了我用来从服务器获取 Base64 编码图像字符串的类。
设置集合视图委托并在收到响应时重新加载集合。在此之前,将它们保留为空。如果集合视图的delegate和dataSource为零,则不会加载数据。
func handleDataLoaded()
{
// Your code that handles data.
...
// Load the collection with data
self.collectionView.delegate = self
self.collectionView.dataSource = self
self.collectionView.reloadData()
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1063 次 |
| 最近记录: |