例如
var urls = ["login","register"]
我需要在一个 tableview 中将 urls[indexPath.row]
作为函数名来使用:
let myfuncname = urls[indexPath.row]
let myfunc = myfuncname()
这样肯定是错误的,请问正确的写法是什么?
1
jamfer OP 为何刚发布的主题就沉底了
|
2
crashX 2017-04-13 12:13:51 +08:00 1
let myfunc = Selector(myfuncname),会有警告。
|
3
isweal 2017-04-13 13:21:41 +08:00 1
``` swift
//view.addSubview(imageView) let name = "addSubview:" let selector = NSSelectorFromString(name) view.perform(selector, with: imageView) ``` 看得懂吧。 |
5
kingcos 2017-04-13 14:21:08 +08:00 1
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let urls = ["register", "login"] // let selector = Selector(indexPath.row) let selector = NSSelectorFromString(indexPath.row) perform(selector) } func register() { print(#function) } func login() { print(#function) } 两种都可以吧 |
7
jamfer OP @kingcos 我用 self.present(selector, animated:true, completion:nil) 还是会报错。这里应该怎么用呢?
|
8
ldp940622 2017-04-13 16:01:44 +08:00
这样做危险性太大了,个人觉得用 enum 和路由方式来封装比较合理
|