我正在尝试删除ForEach. 删除最后一行总是会引发索引超出范围异常。删除任何其他行则不会。
ForEach(Array(player.scores.enumerated()), id: \.element) { index, score in
HStack {
if self.isEditSelected {
Button(action: {
self.player.scores.remove(at: index)
}, label: {
Image("delete")
})
}
TextField("\(score)", value: self.$player.scores[index], formatter: NumberFormatter())
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试过使用ForEach(player.indices...)& ForEach(player.scores...),但看到同样的问题。
在我看来,崩溃发生在这里self.$player.scores[index],因为将索引硬编码为除最后一行之外的任何值。
有谁知道如何解决这一问题?或者是否有更好的方法。
我有作为一个小项目来创建的阵列Name,Surname并且Email其中我在使用值创建的xml
这是我的 xml Name,以字符串命名names
<resources>
<string name="names">
<item>Ivan</item>
<item>Santiago</item>
.....
</string>
</resources>
Run Code Online (Sandbox Code Playgroud)
这是我的 XML,名为 Surnames,带有一个名为 surnames 的字符串
<resources>
<string name="surnames">
<item>Rodríguez</item>
<item>Gómez</item>
<item>López</item>
.....
</string>
</resources>
Run Code Online (Sandbox Code Playgroud)
public class Registro extends AppCompatActivity implements View.OnClickListener {
private TextView Nombre,Apellido,Correo;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_registro);
//Seteamos las Cajas de Texto
Nombre = (TextView) findViewById(R.id.txtNombre);
Apellido = (TextView) findViewById(R.id.txtApellido);
Correo = (TextView) findViewById(R.id.txtCorreo);
//Ponemos en Modo de Escucha al Boton
findViewById(R.id.btnGenerar).setOnClickListener(this);
}
@Override …Run Code Online (Sandbox Code Playgroud)