对象数组包含对象内的所有相同值

时间:2015-05-05 22:33:21

标签: ios arrays swift

我是Swift的新手,我在使用一系列对象时遇到了问题。

Optional(40)
Optional(40)
Optional(40)
etc......

我真的不知道这里有什么不对,但我的结果总是40而不是0到40:

<!DOCTYPE html>
<html>
<body>
<p align="right"> Dance Number:  <input type="number"size="3"></p>
<h1><ins>Judge 1</ins></h1>
<p> Comments</p>
<textarea name="myTextBox" cols="50" rows="5">
</textarea>
<br />
<form>
<p> Technique:  <input type="number" min="0" max="35"> /35</p>
<p> Choreography:  <input type="number" min="0" max="15"> /15</p>
<p> Performance: <input type="number" min="0" max="25"> /25</p>
<p> Precision:  <input type="number" min="0" max="15"> /15</p>
<p> Total Points: <input type="number" min="0" max="90">   /90</p>
<h1><ins>Judge 2</ins></h1>
<p> Comments</p>
<textarea name="myTextBox" cols="50" rows="5">
</textarea>
<br />
</form>
<form>
<p> Technique:  <input type="number" min="0" max="35"> /35</p>
<p> Choreography:  <input type="number" min="0" max="15"> /15</p>
<p> Performance: <input type="number" min="0" max="25"> /25</p>
<p> Precision:  <input type="number" min="0" max="15"> /15</p>
<p> Total Points:  <input type="number" min="0" max="90">  /90</p>
<h1><ins>Judge 3</ins></h1>
<p> Comments</p>
<textarea name="myTextBox" cols="50" rows="5">
</textarea>
<br />
</form>
<form>
<p> Technique:  <input type="number" min="0" max="35"> /35</p>
<p> Choreography:  <input type="number" min="0" max="15"> /15</p>
<p> Performance: <input type="number" min="0" max="25"> /25</p>
<p> Precision:  <input type="number" min="0" max="15"> /15</p>
<p> Total Points:  <input type="number" min="0" max="90"> /90</p>
<p> Over All Score:  <input type="number" min="0" max="90"> /90</p>
<p> Award Assigned:</p>
<input type="submit" />
</form>
<script>

</script>
</body>
</html>

有谁知道如何解决这个问题?几乎看起来有点像一个bug。

1 个答案:

答案 0 :(得分:3)

count:repeatedValue:initializer在数组的每个位置安装完全相同的对象。

因此,当您将array [0] .test更改为某个值时,您将更改存储在单个myClass实例中的值,该实例在数组的所有索引处共享。查看索引19,您会看到相同的myClass对象,其值已更改。

所以使用循环来初始化你的数组:

var array = [myClass]()

for (i in 1...20)
{
  let anItem = myClass()
  anItem.test = i
   array.append(anItem)
}