update/change 数组值 (swift)
update/change array value (swift)
数据模型
class dataImage {
var userId: String
var value: Double
var photo: UIImage?
var croppedPhoto: UIImage?
init(userId:String, value: Double, photo: UIImage?, croppedPhoto: UIImage?){
self.userId = userId
self.value = value
self.photo = photo
self.photo = croppedPhoto
}
}
视图控制器
var photos = [DKAsset]() //image source
var datas = [dataImage]()
var counter = 0
for asset in photos{
asset.fetchOriginalImageWithCompleteBlock({ image, info in // move image from photos to datas
let images = image
let data1 = dataImage(userId: "img\(counter+1)", value: 1.0, photo: images, croppedPhoto: images)
self.datas += [data1]
counter++
})
}
根据该代码,假设我有 5 个数据:
- dataImage(userId: "img1", value: 1.0, photo: images, croppedPhoto:
images)
- dataImage(userId: "img2", value: 1.0, photo: images, croppedPhoto:
images)
- dataImage(userId: "img3", value: 1.0, photo: images, **croppedPhoto:
images**)
- dataImage(userId: "img4", value: 1.0, photo: images, croppedPhoto:
images)
- dataImage(userId: "img5", value: 1.0, photo: images, croppedPhoto:
images)
如何 change/update img3 的 croppedImage 值?
self.datas[2] = dataImage(userId: "img6", value: 1.0, photo: images, croppedPhoto: images)
这会将数组中的第 3 个对象替换为新对象。
或
self.datas[2].value = 2.0
这将更改 dataImage 对象的值 userId
"img3"。
这是否回答了您的问题?
如果您需要在 userId 中搜索特定值,那么使用字典(关联数组)比使用(索引)数组要好得多。
var datas = [String, dataImage]()
...
self.datas["img\(counter+1)"] = ...
并且您以相同的方式访问它。
self.datas["img3"].value = 2.0
并且请将 class imageData 重命名为 ImageData。 Class 名称以大写字母开头。
数据模型
class dataImage {
var userId: String
var value: Double
var photo: UIImage?
var croppedPhoto: UIImage?
init(userId:String, value: Double, photo: UIImage?, croppedPhoto: UIImage?){
self.userId = userId
self.value = value
self.photo = photo
self.photo = croppedPhoto
}
}
视图控制器
var photos = [DKAsset]() //image source
var datas = [dataImage]()
var counter = 0
for asset in photos{
asset.fetchOriginalImageWithCompleteBlock({ image, info in // move image from photos to datas
let images = image
let data1 = dataImage(userId: "img\(counter+1)", value: 1.0, photo: images, croppedPhoto: images)
self.datas += [data1]
counter++
})
}
根据该代码,假设我有 5 个数据:
- dataImage(userId: "img1", value: 1.0, photo: images, croppedPhoto:
images)
- dataImage(userId: "img2", value: 1.0, photo: images, croppedPhoto:
images)
- dataImage(userId: "img3", value: 1.0, photo: images, **croppedPhoto:
images**)
- dataImage(userId: "img4", value: 1.0, photo: images, croppedPhoto:
images)
- dataImage(userId: "img5", value: 1.0, photo: images, croppedPhoto:
images)
如何 change/update img3 的 croppedImage 值?
self.datas[2] = dataImage(userId: "img6", value: 1.0, photo: images, croppedPhoto: images)
这会将数组中的第 3 个对象替换为新对象。
或
self.datas[2].value = 2.0
这将更改 dataImage 对象的值 userId
"img3"。
这是否回答了您的问题?
如果您需要在 userId 中搜索特定值,那么使用字典(关联数组)比使用(索引)数组要好得多。
var datas = [String, dataImage]()
...
self.datas["img\(counter+1)"] = ...
并且您以相同的方式访问它。
self.datas["img3"].value = 2.0
并且请将 class imageData 重命名为 ImageData。 Class 名称以大写字母开头。