我可能正在做一些非常愚蠢的事情,但我无法弄清楚我的生活是怎么回事......
我想要做的很简单.我UICollectionView依赖于我从服务器加载的数据.从服务器获取并设置数据后,我调用reloadData()集合视图.当我这样做时,numberOfItemsInSection被调用正确的计数,但cellForItemAt除非我reloadData()再次呼叫(甚至不需要延迟),否则永远不会被调用.
这是一般性的想法(虽然我意识到这可能与其他地方的某些竞争有关,但也许这足以启动对话):
class MyViewController: UIViewController, UICollectionViewDelegate, UICollectionViewDataSource {
@IBOutlet weak var collectionView: UICollectionView!
var data = [DataModel]()
override func viewDidLoad() {
collectionView.delegate = self
collectionView.dataSource = self
collectionView.register(UINib(nibName: "MyCell", bundle: nil), forCellWithReuseIdentifier: "MyCell")
getData()
}
func getData() {
someAsyncMethodToGetData() { (data) in
// Using CloudKit so I think this is necessary, but tried it with and without
DispatchQueue.main.async {
self.data = data
self.collectionView.reloadData()
// This is the only way …Run Code Online (Sandbox Code Playgroud) 今天早些时候在Swift中使用泛型时遇到了一个有趣的bug.我想出了一个解决方案,但我想知道是否有人可以回答为什么编译器没有捕获这样的东西.让我从一段代码开始.
func doSomething<T>(with array: [T]) {
type(of: array) // Optional<Array<Int>>
array is [Int] // true
array is [String] // true
}
var arrayOfInts: [Int] = []
doSomething(with: arrayOfInts)
Run Code Online (Sandbox Code Playgroud)
见第4行.为什么这样true?我错过了什么吗?难道编译器不应该足够聪明地弄清楚这不是一个Strings 数组吗?这最终导致了一个错误,其中由于假定空数组的类型错误而导致值设置不正确.
就解决方案而言,我选择了以下内容:
if type(of: array).Element.self == Model.self
Run Code Online (Sandbox Code Playgroud) 好吧,通常我对CSS非常好.但是这一个...我无法完全理解为什么会发生这种情况.
我确实找到了几个"快速修复",但我不想只是为了做某事而做某事,所以如果有人能帮助我理解这个异常,请挺身而出(我试过在网上搜索和低,并没有找到任何关于这个)!!
使用哈希(#)/锚链接时会出现此问题.我把小提琴放在一起,以便更好地解释发生了什么.
首先,请访问:http://jsfiddle.net/GKCE6/5/show.看起来不错吧?
现在让我们将哈希(#)符号添加到URL:http://jsfiddle.net/GKCE6/5/show/#some-content.标题就消失了!走了!纳达!
有任何想法吗?我注意到如果我overflow:hidden从中删除规则div#container,标题会回来.不过,我正在研究的项目需要overflow:hidden规则来消除水平滚动.我可能会做类似的事情overflow-x:hidden,但就像我在开始时说的那样,我宁愿尝试理解为什么会这样,所以我可以确定适当的修复.
还有其他人遇到过此吗?