您好,匿名用户

swift3中字符串转成方法的时候,怎么接收返回值?

0 投票

核心代码如下

var tweakEntries = [(title : String, array : [Array<String>])]()

override func viewDidLoad() {
    super.viewDidLoad()

    tableView.tableFooterView = UIView()
    navigationItem.title = "设置"
    //tableView.separatorStyle = .none

    let timeSettingArr = [
        ["工作时间间隔","workTime","setWorkTime"],
        ["休息时间间隔","relaxTime","setRelaxTime"],
    ]
    let _ = [
        ["通知标题","",""],
        ["通知语","",""]
    ]
    let _ = [
        ["显示背景图片","displayStatus","setDisplayStatus"]
    ]
    tweakEntries = [
        ("时间设置",timeSettingArr),
        //("通知设置",localNoti),
        //("其他设置",otherSettingArr)
    ]
}



override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    let section = indexPath.section
    let row = indexPath.row
    let identifier  = "SettingCell"
    var cell = tableView.dequeueReusableCell(withIdentifier: identifier)
    if (cell == nil) {
        cell = SettingCell.init(style: .subtitle, reuseIdentifier: identifier)
    }
    cell?.textLabel?.text = tweakEntries[section].array[row][0]
    let methodName = tweakEntries[section].array[row][1];
    print("\(methodName)")
    let method : Selector = Selector(methodName)
    let detailText = perform(method)
    //let temp : CGFloat = detailText as! CGFloat
    //cell?.detailTextLabel?.text = "\(temp)"


    return cell!
}

func workTime() -> CGFloat {
    return 11.0
}

怎么接收 workTime () -> CGFloat 这个方法的返回值
看到perform 的返回值是 Unmanaged<AnyObject>!,不用 perform 的话还有其他相同功能的方法么?
public func perform(_ aSelector: Selector!) -> Unmanaged<AnyObject>!

下面是全部代码
code: https://github.com/CoderYLZha...

http://stackoverflow.com/ques...

用户头像 提问 2017年 6月13日 @ Vayne 中士 (1,311 威望)
分享到:

1个回答

0 投票

不知道为什么,总感觉你这样做是anti-pattern的。

不过提供一个古老的思路:把储存结果的变量当指针传进去。

func workTime() -> CGFloat {
   let temp : CGFloat
   /* 具体的操作 */
   return temp
}

改成:

func workTime(inout result: CGFloat) -> void {
   let temp : CGFloat
   /* 具体的操作 */
   result = temp
}
用户头像 回复 2017年 6月13日 @ Renekton 中士 (1,205 威望)
提一个问题:

相关问题

0 投票
1 回复 208 阅读
用户头像 提问 2017年 6月12日 @ Anivia 中士 (1,186 威望)
0 投票
1 回复 355 阅读
0 投票
0 回复 9 阅读
用户头像 提问 5月26日 @ Evelynn 中士 (1,084 威望)
0 投票
1 回复 95 阅读
用户头像 提问 2014年 12月16日 @ Pantheon 中士 (1,263 威望)

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

IT技术交流群 - 随意问
欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...