我在哪里定义Swift中嵌套闭包的捕获引用?
以此代码为例:
import Foundation
class ExampleDataSource {
var content: Any?
func loadContent() {
ContentLoader.loadContentFromSource() { [weak self] loadedContent in
// completion handler called on background thread
dispatch_async(dispatch_get_main_queue()) { [weak self] in
self?.content = loadedContent
}
}
}
}
class ContentLoader {
class func loadContentFromSource(completion: (loadedContent: Any?) -> Void) {
/*
Load content from web asynchronously,
and call completion handler on background thread.
*/
}
}
Run Code Online (Sandbox Code Playgroud)
在这个例子中,[weak self]在两个尾随闭包中使用,但是如果我[weak self]从任何一个尾随闭包中省略,编译器都非常高兴.
因此,我有3个选项来定义我的捕获列表:
我的问题是:
如果我知道我
ExampleDataSource可以 …
我有一个正在UICollectionView使用的流程布局,并且正在尝试实现UITableViewController与具有可读内容宽度的相同的边距。
我最想匹配此布局行为的是将嵌入UICollectionViewController到UIViewController并具有嵌入的视图“跟随可读宽度”。
在这里,蓝绿色是,蓝绿色UIViewController是UICollectionViewController。问题在于,蓝绿色区域不会滚动,UICollectionView并且滚动指示器也未如您所愿地沿屏幕边缘。
我的问题是:
如何在不嵌入的情况下实现此布局
UICollectionViewController?
我的猜测是,我可以通过某种方式设置UICollectionView左右部分插图以匹配可读的内容指南页边距,并通过覆盖viewWillTransition(to size: with coordinator:)和观察UIContentSizeCategoryDidChange通知来更新它们,但是我不确定该怎么做。