gpt4 book ai didi

ios - 按委托(delegate)自动存储数据(swift)

转载 作者:行者123 更新时间:2023-11-30 13:17:01 25 4
gpt4 key购买 nike

class BaseViewController: UIViewController,departmentMenuDelegate{
var deptId1: NSMutableArray = []
var deptSelectedIndexPath : NSIndexPath?
var deptSelectedProfileName : String = ""

func returnDeptId()-> NSMutableArray
{
return deptId1
}
}

class DepartmentMenuController: UIViewController,,UITableViewDataSource, UITableViewDelegate{
var deptId: NSMutableArray = []

var testing : Int = 0
weak var delegate : departmentMenuDelegate?

override func viewDidLoad() {
super.viewDidLoad()
deptId = (delegate?.returnDeptId())!
deptId = ["suds","sdsds"]
}
}

问题1:当我向DepartmentMenuController中的deptId添加值时,它会自动将值存储到BaseViewController中的deptId中。为什么会发生这种情况?如果我删除 deptId = (delegate?.returnDeptId())!,那么问题就不存在

它只发生在 NSMutableArray 上,而不是其他类型(例如 String)

问题2:正常情况下会发生这种情况吗?我想知道这是我的程序的问题

最佳答案

当您调用委托(delegate)时,您是通过引用传递的。我想这就是您正在寻找的。

class BaseViewController: UIViewController,departmentMenuDelegate{
var deptId: NSMutableArray = []
var deptSelectedIndexPath : NSIndexPath?
var deptSelectedProfileName : String = ""

func returnDeptId(departmentID: NSMutableArray) -> NSMutableArray {
for i in 0..<deptId.count {
departmentID.append(deptId[i] copy)
}
return departmentID
}
}

class DepartmentMenuController: UIViewController, UITableViewDelegate {

var deptId: NSMutableArray = []
var testing : Int = 0
weak var delegate : departmentMenuDelegate?

override func viewDidLoad() {
super.viewDidLoad()
deptId = (delegate?.returnDeptId(deptId))!
deptId = ["suds","sdsds"]
}
}

关于ios - 按委托(delegate)自动存储数据(swift),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38113451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com