我现在正在学习iOS。我在使用 append() 方法时遇到困难。该方法正在覆盖以前的数据。下面是我的模型文件
import Foundation
import EVReflection
class RequestItem: EVObject {
var itemId: NSNumber?
var requestedQty: Int?
var name: String!
}
Run Code Online (Sandbox Code Playgroud)
这是我的viewController 文件。
import UIKit
class ViewController: UIViewController {
var requestItems: [RequestItem] = []
var requestItem = RequestItem()
func setUpData() {
for i in 1...10 {
if i < 3 {
requestItem.itemId = i as NSNumber
requestItem.requestedQty = 10
requestItem.name = "Item name \(i)"
self.requestItems.append(requestItem)
print("--------------------------------------------Start--------------------------------------------")
print( requestItems )
print("--------------------------------------------End--------------------------------------------")
}
}
}
override func viewDidLoad() {
super.viewDidLoad()
setUpData()
}
}
Run Code Online (Sandbox Code Playgroud)
我得到的结果如下
--------------------------------------------Start--------------------------------------------
[RequestItem = {
"requestedQty" : 10,
"name" : "Item name 1",
"itemId" : 1
}]
--------------------------------------------End--------------------------------------------
--------------------------------------------Start--------------------------------------------
[RequestItem = {
"requestedQty" : 10,
"name" : "Item name 2",
"itemId" : 2
}, RequestItem = {
"requestedQty" : 10,
"name" : "Item name 2",
"itemId" : 2
}]
--------------------------------------------End--------------------------------------------
Run Code Online (Sandbox Code Playgroud)
我想得到的结果如下
--------------------------------------------Start--------------------------------------------
[RequestItem = {
"requestedQty" : 10,
"name" : "Item name 1",
"itemId" : 1
}]
--------------------------------------------End--------------------------------------------
--------------------------------------------Start--------------------------------------------
[RequestItem = {
"requestedQty" : 10,
"name" : "Item name 1",
"itemId" : 1
}, RequestItem = {
"requestedQty" : 10,
"name" : "Item name 2",
"itemId" : 2
}]
--------------------------------------------End--------------------------------------------
Run Code Online (Sandbox Code Playgroud)
我的问题是 ** 为什么itemId重复?我该如何解决?
RequestItem
是引用类型,并且您始终使用(引用)相同的项目。
在循环内创建一个新实例
var requestItems: [RequestItem] = []
func setUpData() {
for i in 1...10 {
if i < 3 {
let requestItem = RequestItem()
requestItem.itemId = i as NSNumber
requestItem.requestedQty = 10
requestItem.name = "Item name \(i)"
self.requestItems.append(requestItem)
print("--------------------------------------------Start--------------------------------------------")
print( requestItems )
print("--------------------------------------------End--------------------------------------------")
}
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
192 次 |
最近记录: |