У меня есть фрагмент кода, работающий, как и ожидалось, в Android, но не в iOS. Проблема заключается в значении конечной переменной 'nombre', которая в Android получает ожидаемое значение, тогда как в iOS она получает другую, случайно выбранную из списка (указывается в предоставленном codenippet)
public AsignarNombreCDF(){
this.departamentoId = AdministradoresApp.departamentoId;
this.setLayout(BoxLayout.y());
this.setTitle("Asignar Nombre a CDF");
TopBarUtils.addMenuToTopbar(this);
TopBarUtils.addCommandToTopbarMenu(this, "Inicio Departamento", e->{new MenuDepartamento(departamentoId).show();});
try {
Map m = Utils.consultaWebService("newfoldernames", new Object[]{"department", departamentoId});
String folderNameMatrix = (String) m.get("FolderNameMatrix");
Map m_ = (Map) JSONUtils.fromJsonString(folderNameMatrix);
Iterator it = m_.keySet().iterator();
while(it.hasNext()){
String k = (String) it.next();
final String nombre = (String) m_.get(k);
Button b = new Button(nombre);
b.addActionListener(e->{cargarFotos(nombre);});
this.add(b);
}
int y = 2;
} catch (Exception ex) {
Utils.gestionaExceptionUi(ex);
}
}
Проблема в том, что последняя переменная nombre, похоже, неправильно присваивает значение, переданное слушателю кнопки. Это, как уже говорилось, происходит только в IOS, а не в Android, где мы никогда не получаем несоответствие. Есть ли шанс, что система сборки iOS может контролировать эту ситуацию? Есть идеи как преодолеть проблему?
С уважением.
Карлос.