我有一个int数组数组。
override func viewDidLoad() {
super.viewDidLoad()
self.table.dataSource = self
self.table.delegate = self
self.table.tableHeaderView = self.searchController.searchBar
self.definesPresentationContext = true
self.searchController.searchBar.sizeToFit()
self.searchController.dimsBackgroundDuringPresentation = false
self.searchController.searchResultsUpdater = self
self.searchController.delegate = self
}
我想为每个X创建一个线程,它沿着Y迭代。我无法弄清楚如何将适当的X值传递给每个线程。
基本上我希望能够做到
DataArray[X][Y]
任何帮助将不胜感激
答案 0 :(得分:7)
只能在method-local-anonymous-inner-class中捕获final
个值。您需要按如下方式更改代码:
for (int i = 0; i < X; i++) {
final int index = i;
threadPool.submit(new Runnable() {
public void run() {
Function_to_run(index);
}
});
答案 1 :(得分:0)
使用但未在内部类中声明的任何局部变量,形式方法参数或异常处理程序参数必须声明为final。任何在内部类中使用但未声明的局部变量必须在内部类的主体之前明确赋值。