美文网首页
关于自学swift的一些心得(一)

关于自学swift的一些心得(一)

作者: 木子冰洛 | 来源:发表于2019-01-19 11:06 被阅读5次

    一,关于?和!

    ?就是可能为空, !就是确定肯定有值

    二,关于写block,swift里面叫闭包

    (name:String,compate:@escaping(_success:Bool,_reslut:String?,_model :LSJUserInfoModel?) -> ()

    1,以上包括关键字: @escaping后面跟着的参数前面需要加下划线 _ ,不然会报错, 参数类型后面的?代表这个参数可能为nil, 如果没有?则表示此参数肯定有值, 如果你包了一个nil就会报错

    2,闭包写的地方跟参数是一起的, 用逗号隔开

    3,对于调用闭包时候, success: { (res:Data)in 尽量把参数的类型都写好, 不要省略, 省略看着代码是简洁了, 但是可读性很差, 到时候你根本不知道这个参数类型是啥, 还得翻回去看

    反正用闭包就是, 尽量不要随便省略, 搞得高大上的很. 如果省略了, 真出BUG回过头来检查的时候, 你就等着GG吧

    三,对于NSString和String, NSDictionary和Dictionary

    建议不到实在不行时候, 你才用NS系列的类型, 建议直接用没有NS的来写swift, 当成一个新语言来解决. 不然代码经常出现要as的时候, 很烦

    四,对于UIButton的addTarget方法

    Button.addTarget(self, action:#selector(clickUpdateButton(sender:)), for:UIControl.Event.touchUpInside)

    1,这里很坑的是#selector 不能自动联想的写出来, 你得背下这个单词

    2,UIControl.Event.touchUpInside不建议写成.touchUpInside, 省略是很高大上, 但是代码可读性差. 此处针对所有其他的枚举. 毕竟这个你常用的省略了你还看得懂, 其他不常用的省略你, 你知道是啥?

    3,clickUpdateButton(sender:)对于这个方法, 你在写的时候 要加上@objc func 在前面, 不然会报错

    五,对于全局属性

    建议全局的let或var出来的属性, 前面都加上self.  这样增加代码可读性, 明确知道属性来自哪里.

    1, 在使用Masonry来代码设置约束时候如果不写self.就会报错

    self.mobileTextField.mas_makeConstraints { (make:MASConstraintMaker!) in

                make.centerX.equalTo()

                make.top.equalTo()(self.iconView.mas_bottom)

                make.height.equalTo()(55)

                make.width.equalTo()(260)

            }

    2, 对于Masonry使用时候, (make:MASConstraintMaker!)  的!必须要有,不然会报错

    六,对于代理的实现

    extension LSJTabBarController : LSJTabbarViewDelegate {

        func tabClickItem(index:Int) {

            self.selectedIndex= index

        }

    }

    这里比较爽, 直接开分类来继承代理协议, 与自己的方法分开, 看着非常舒适

    七,对于怎么写单例

    这里写单例很简单, 没有OC那么麻烦的逻辑

    class LSJUserInfo {

        static let shareUserInfo = LSJUserInfo()

        private init(){}

    1,这个简单的方法, 首先这个类不能继承于NSObject

    2, 需要吧init()来弄成私有,

    3, 抛出一个单例创建方法就可以了

    相关文章

      网友评论

          本文标题:关于自学swift的一些心得(一)

          本文链接:https://www.haomeiwen.com/subject/oymadqtx.html