封装系统弹框及元组作为函数参数的使用

声明:作者将系统弹框进行了封装,但实际用处不大,它并没有很好的简化代码。
先上代码,以下是我对系统弹框的封装

import UIKit

class ToolManager: NSObject {
    
    
    static let shareInstance : ToolManager = ToolManager()


    /// - Parameters:
    ///   - viewController: 当前视图控制器
    ///   - title: 弹框标题
    ///   - message: 弹框内容
    ///   - style: 弹框样式
    ///   - action1: 操作1元组(操作名,操作回调)
    ///   - action2: 操作2元组(操作名,操作回调)
    func showAlert(viewController:UIViewController,
                   title:String?,message:String?,
                   style:UIAlertControllerStyle,
                   action1: (_:String,_:(UIAlertAction) -> Void)?,
                   action2: (_:String,_:(UIAlertAction) -> Void)?) {
        let ac = UIAlertController.init(title: title, message: message, preferredStyle: style)
        if action1 != nil {
            ac.addAction(UIAlertAction.init(title:action1?.0 , style: UIAlertActionStyle.default, handler: action1?.1))
        }
        if action2 != nil {
            ac.addAction(UIAlertAction.init(title: action2?.0, style: UIAlertActionStyle.default, handler: action2?.1))
        }
        viewController.present(ac, animated: true, completion: nil)
    }

}

封装中,我使用了元组将操作名与操作回调整合在一起了,按理说应该很完美!但实际使用起来却不尽如人意

如下图,一切的赋值都还好
1.png

当我对action进行赋值时,一敲回车,变成这样了!说好的元组呢?
2.png

没办法,只能手动添加了括弧、操作名。。最坑爹的是第二个元组,一敲回车,变成这样了!整个函数都变了样
3.png

只能将刚手动修改元组1复制过来。。
5.png

粘贴上去。。
6.png

修改参数,搞定。。
7.png

这一系列的操作下来,封装的意义何在?还不如直接用系统的弹框。。

你可能感兴趣的:(封装系统弹框及元组作为函数参数的使用)