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:对于正常情况,会发生这种情况吗?我想知道这是我程序中的问题答案 0 :(得分:0)
当您致电委托时,您将通过引用传递。我想这就是你要找的东西。
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"]
}
}