Следующий код:Swift Closure Compiler Error
var index = 0;
for (uuid, type) in map! {
{ (idx) in /*COMPILER ERROR HERE*/
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), {
Dashlet.build(self.selectedDashboard!.getUuid(), dashletUuid: uuid, type: type) { (dashlet: Dashlet) in
self.dashlets![idx] = dashlet;
dispatch_async(dispatch_get_main_queue(), {
var path = NSIndexPath(forRow: idx, inSection:0);
self.tableView.reloadRowsAtIndexPaths([path], withRowAnimation: UITableViewRowAnimation.Automatic);
});
};
});
} (index);
index++;
}
, но это приводит к ошибке компилятора:
Cannot convert the expression's type 'Int' to Void
мое желание, чтобы назвать dispatch_async столько раз, сколько записей в словарь, и каждый раз с индексом, который больше, чем в последний раз.
EDIT:
Скриншот фактической упрощенной ситуации:
Попробуйте явно установить тип для 'idx'. '{(idx: Int) in' –
@MikeS Спасибо за предложение, но такая же ошибка сохраняется и после этого. – thatidiotguy
Какую версию Xcode вы используете? Я действительно получаю компилятор в Xcode 6.1 GM, когда я пытаюсь скомпилировать аналогичный код без ': Int' на месте. Если я поставлю ': Int', он работает нормально. –