美文网首页
开发自己第一个Swift项目(持续更新)

开发自己第一个Swift项目(持续更新)

作者: 雨润听潮 | 来源:发表于2017-05-11 10:11 被阅读82次

    创建swift项目(略过)。把我自己创建新项目的整个过程记录一下,由于Swift不是太熟,属于摸着石头过河,有很多幼稚的问题,请高手跳过。

    1、pch文件,在OC中,有个pch文件,而在swift中,创建一个.swift文件 就可替代pch,方便快捷。不需要配置build-setting

    接下来,在OC中有很多好用的第三方包,比如AFNetwork,MJRefresh等,但这些包只有OC版,而当前项目为Swift。

    现在以AFNetwork为例,将OC文件拖入项目,XCode会提示

    点击YES,Xocde就会在新建OC文件的同时帮我们新建一个xxx-Bridging-Header.h文件,xxx是你的项目名称(Product Module),然后我们得编辑这个文件才能让Swfit代码调用OC代码

    如此,就可以正常使用AFNetworking了。


    接下来重写原项目的基类代码。

    1、protocol 协议代理

    定义方法,如果方法是可选的则添加前缀@objc optional,并且在protocal前添加@objc 如

    @objc protocol  AlertViewEventDelegate{

         @objc optional func eventAtIndex(alertView : MyAlertView , event :      Any , index : NSInteger) -> Void

    }

    2、枚举定义

    enum BadgeValuePosition {

        case BadgeValuePositionTopLeft

        case BadgeValuePositionTopRight

        case BadgeValuePositionCenterLeft

        case BadgeValuePositionCenterRight

        case BadgeValuePositionBottomLeft

        case BadgeValuePositionBottomRight

    }

    3、字符串的截取

    搜了很多String的截取,貌似在使用Range的时候,比较麻烦。所以我采取了转成NSString,配合NSRange进行截取,如下

    var testStr : String = "123456789"

    testStr = (testStr as NSString).substring(with: NSMakeRange(1,2))

    4、16进制字符转数字

    开发中,用到了颜色字符串(16进制)转数值,我写的方式如下:

    class func hexValueToInt(str : String) -> Int{

        var hexString : String = str.uppercased()

        var sum : Int = 0

        for i in hexString.utf8 {

            sum = sum * 16 + Int(i) - 48

           if i >= 65 {

               sum -= 7

            }

        }

    return sum

    }

    5、Array排序

    var userList = [UserInfo]()

    userList.append(UserInfo(name:"张三", phone:"13717717777"))

    userList.append(UserInfo(name:"李四", phone:"13888888888"))

    userList.append(UserInfo(name:"赵五", phone:"13417817817"))

    userList = userList.sorted(by : {$0.name < $1.name})

    6、判断属性类型 isKind

    if a.isKind(of : A.self){

    }

    7、扩展(extension)添加属性

    extension UIView{

        var viewOrigin : CGPoint {

           get{

               return self.frame.origin

            }

           set{

              var rect : CGRect = self.frame

               rect.origin = newValue

              self.frame = rect

          }

    }

    }

    8、Swift3 实现单例

    项目中的用户信息一般都是单例模式,在swift3.0中弃用了dispatch_once,可以采用以下几种形式

        1)普通创建法

    final class Single : NSObject {

        static let shared = Single()

        private override init() {}

    }

       2)静态创建法

    let single = Single()

    class Single : NSObject{

    //-MARK: 单例:方法2

         class var sharedInstance2 : Single{

              return single

        }

    }

    9、集成snapkit

    相关文章

      网友评论

          本文标题:开发自己第一个Swift项目(持续更新)

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