我有
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)
打印预期的细胞.
其余的设置是UINavigationController我StationViewController的关系.它的IBOutlet stationViewController连接到UITableViewstoryboard文件中.
我似乎需要对屏幕进行"重新绘制"以使我的更新立即可见.我怎么做?
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"?它不需要它,为什么要计算呢?
我想在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?