小编Eri*_*son的帖子

UITableView reloadData()不刷新显示的单元格

我有

class StationViewController : 
    UITableViewController, UITableViewDelegate, UITableViewDataSource {
  @IBOutlet var stationTableView: UITableView!
Run Code Online (Sandbox Code Playgroud)

更新数据源中的数据并执行操作时

stationTableView.reloadData()
Run Code Online (Sandbox Code Playgroud)

这不会立即显示在屏幕上.如果我滚动,倾斜或做任何其他强制重新绘制屏幕的内容,则可以看到更新的单元格.我可以通过调用确认UITableView确实进行了更新

println("\(stationTableView.visibleCells())")
Run Code Online (Sandbox Code Playgroud)

打印预期的细胞.

其余的设置是UINavigationControllerStationViewController的关系.它的IBOutlet stationViewController连接到UITableViewstoryboard文件中.

我似乎需要对屏幕进行"重新绘制"以使我的更新立即可见.我怎么做?

uitableview uinavigationcontroller ios swift

13
推荐指数
1
解决办法
2万
查看次数

为什么haskell评估a >> b?

haskell中Monads的>>运算符通常定义为

(>>) :: m a -> m b -> m b
a >> b = a >>= \_ -> b
Run Code Online (Sandbox Code Playgroud)

它可以用来打印像

main = putStr "foo" >> putStrLn "bar"
Run Code Online (Sandbox Code Playgroud)

为什么编译器不会优化价值putStr "foo"而只是评估putStrLn "bar"?它不需要它,为什么要计算呢?

monads haskell functional-programming operators

7
推荐指数
3
解决办法
324
查看次数

haskell中的点运算符,具有多参数功能

我想在haskell中编写一个无点函数,为了简单起见,我想说要创建这个函数:

maxmin :: Ord a => a -> a -> a -> a
maxmin a b c = max a (min b c)
Run Code Online (Sandbox Code Playgroud)

我可以改进这个

maxmin a b = (max a) . (min b)
Run Code Online (Sandbox Code Playgroud)

但有没有办法摆脱a和b?

haskell pointfree dot-operator

6
推荐指数
1
解决办法
1496
查看次数