微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

可以为代码段添加类型别名吗?

如何解决可以为代码段添加类型别名吗?

在我的视图控制器中,我使用以下代码在多个位置重新加载 tableView。

dispatchQueue.main.async { self.tableView.reloadData() }

看起来我在多个地方重写了相同的代码。是否可以为此编写 typealias。我知道这可以用通用方法编写,只需在需要的地方调用即可。只是好奇,有什么替代方法??

解决方法

它不是“类型”,因此类型别名没有意义。为它编写一个函数。或者定义一个代码片段,以便您只需按几下键就可以编写加速插入这个常见代码片段。

例如选择代码,右键单击它,然后选择“创建代码片段”:

enter image description here

如果需要,您可以提供“完成”字符串,例如tvrd 在本例中:

enter image description here

然后您只需输入自动完成字符串,您的代码片段就会被插入:

enter image description here

,

正如@Rob 中提到的,答案是正确且好的答案。如果您正在处理 UIViewController 子类并且有一个 TableView 控制器,您可以使用这个扩展。这将帮助您处理所有视图控制器。

extension UITableView {
    func reloadOnMainIfNeeded() {
        if Thread.isMainThread {
            self.reloadData()
        } else {
            DispatchQueue.main.async {
                self.reloadData()
            }
        }
    }
}

用法

class TestController: UIViewController {
    
    @IBOutlet weak var tableView: UITableView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        tableView.reloadOnMainIfNeeded()
    }
}

class TestTableController: UITableViewController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
        tableView.reloadOnMainIfNeeded()
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。