gpt4 book ai didi

ios - objc_getAssociatedObject() 始终为零

转载 作者:行者123 更新时间:2023-11-28 10:24:58 25 4
gpt4 key购买 nike

我有一个很大的 tableView,我想在用户选择一个单元格后在 tableView 中添加 datePickers。

我正在使用 objc_setAssociatedObject() 和 objc_getAssociatedObject() 而不是使用那么多变量。

我的问题是:objc_getAssociatedObject() 在 cellForRowAtIndexPath 中始终为 nil...

这是我的代码示例:(假设用户选择了行 = 0 的单元格)

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
...

if indexPath.row == 1 {
var keypath = "datePicker\(indexPath.section)\(indexPath.row)"
println(objc_getAssociatedObject(self, &keypath))
...
}

}

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let ip = NSIndexPath(forRow: indexPath.row+1, inSection: indexPath.section)
var keypath = "datePicker\(indexPath.section)\(indexPath.row+1)"

objc_setAssociatedObject(self, &keypath, UIDatePicker.alloc(), objc_AssociationPolicy(OBJC_ASSOCIATION_RETAIN_NONATOMIC))
insertRowsAtIndexPaths([ip], withRowAnimation: .Top)
}

最佳答案

你有两个本地 keyPath 变量,所以它们的地址 (&keypath) 自然是不一样的。正是这个地址被用作 key 。

keyPath 提升为文件级全局。现在您的代码应该可以工作了。

关于ios - objc_getAssociatedObject() 始终为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28635135/

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