如果另一个键的值等于某个值,如何更新 NSObject 中一个键的值?
How to update a value of a key in NSObject if another key's value equal to something?
我有一个 NSObject class 看起来像这样
class MyItem : NSObject {
var id: Int
var name: String
//other init code here
}
我想做的是,在其他 class 中,当 id
等于某个值时更新 name
的值
现在MyViewController
var myItem = [MyItem]()
例如,在myItem
的数组中,如果id=3
,则将name
的值更新为"Ken"
。
我完全不知道该怎么做。有人可以给我提示吗?
首先找到我要替换的对象的索引,然后使用索引将其替换为新值
if let row = myItem.index(where: {[=10=].id == yourId}) { // yourId 3
myItem[row].name = newValue
}
这应该有效:
/// Changes The Name Of A MyItem Object Based On It's ID
///
/// - Parameters:
/// - id: Int
/// - name: String
func changeNameFromID(_ id: Int, to name: String){
//1. Get The Index Of The Item
guard let foundIndex = myItem.index(where: { [=10=].id == id }) else { return }
//2. Get The MyItem From The Array
let itemToAppend = myItem[foundIndex]
//3. Change Its Name
itemToAppend.name = name
}
然后你可以这样称呼它:
changeNameFromID(3, to: "Ken")
我有一个 NSObject class 看起来像这样
class MyItem : NSObject {
var id: Int
var name: String
//other init code here
}
我想做的是,在其他 class 中,当 id
等于某个值时更新 name
的值
现在MyViewController
var myItem = [MyItem]()
例如,在myItem
的数组中,如果id=3
,则将name
的值更新为"Ken"
。
我完全不知道该怎么做。有人可以给我提示吗?
首先找到我要替换的对象的索引,然后使用索引将其替换为新值
if let row = myItem.index(where: {[=10=].id == yourId}) { // yourId 3
myItem[row].name = newValue
}
这应该有效:
/// Changes The Name Of A MyItem Object Based On It's ID
///
/// - Parameters:
/// - id: Int
/// - name: String
func changeNameFromID(_ id: Int, to name: String){
//1. Get The Index Of The Item
guard let foundIndex = myItem.index(where: { [=10=].id == id }) else { return }
//2. Get The MyItem From The Array
let itemToAppend = myItem[foundIndex]
//3. Change Its Name
itemToAppend.name = name
}
然后你可以这样称呼它:
changeNameFromID(3, to: "Ken")