首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【iOS开发】解决 UITableview 中选中 Cell 后,Cell 复用导致选中状态消失、应用闪退的问题

状态,但是当页面滚动至不可见某个Cell,再滚动回来时,Cell 的 Checkmark状态消失了。...当页面滑动时,我们标记为Checkmark的Cell会被复用,从而丢失这个状态。...NSMutableSet用来存储Cell的 indexPath,从而便于之后 cellForRowAtIndexPath 方法中按照NSMutableSet中的内容,来将之前选择过的 Cell 标记 Checkmark...append来移除、加入数据, 但是莫名其妙地产生了一些不好的影响:         因为你总是需要遍历数组来在 cellForRowAtIndexPath 方法中,查看哪些cell是应该被选中过的,然后改成Checkmark...在 cellForRow 方法中,不需要for循环可以三行代码给cell加Checkmark标记。 ?

1.9K20
您找到你想要的搜索结果了吗?
是的
没有找到

Golang源码探索----GC的实现原理(1)

// 什么是checkmark // - 因为go的并行GC比较复杂, 为了检查实现是否正确, go需要在有一个检查所有应该被标记的对象是否被标记的机制...// 这个机制就是checkmark, 在开启checkmark时go会在标记阶段的最后停止整个世界然后重新执行一次标记 // 上面的第二个slot的scan bit就是用于标记对象在...checkmark标记中是否被标记的 // - 有的人可能会发现第二个slot要求对象最少有两个指针的大小, 那么只有一个指针的大小的对象呢 // 只有一个指针的大小的对象可以分为两种情况...// 对象就是指针, 因为大小刚好是1个指针所以并不需要看bitmap区域, 这时第一个slot就是checkmark // 对象不是指针, 因为有tiny alloc...的机制, 不是指针且只有一个指针大小的对象会分配在两个指针的span中 // 这时候也不需要看bitmap区域, 所以和上面一样第一个slot就是checkmark

1.2K30
领券