swift 一些技巧总结

oc混编

-SmartHome-Bridging-Header.h
-#import "SmartHome-Swift.h"

定义类

class WeatherModel  {
    var address:String=""
     init(address:String) {
        self.address=address
      }
   }

闭包

 typealias Complete = (WeatherModel?) -> ()
func weatherWithProvince(localCity:String,complete:Complete){    
// 。。。。
   complete(weather)
// 。。。。
}

延展

 extension AppDelegate{
    func dosth()
    {
    //to do
    } 
}

懒加载

    lazy var btn:UIButton = {
       let _btn = UIButton(frame: CGRectMake( 0,0,0,0))
       _btn.setImage(voiceIconSelected, forState: UIControlState.Normal)
       _btn.backgroundColor = UIColor.whiteColor()
       _btn.layer.cornerRadius = 19
       _btn.layer.masksToBounds = true
       _btn.layer.borderWidth = 1.0
       _btn.layer.borderColor = mainColor.CGColor

      return _btn;

    }()
重写get set方法实现联动效果
    var _currentTemp: Int = 18
    var currentTemp:Int{
        get{
        return _currentTemp
        }
        set {
            if(newValue > 14 && newValue < 36){
            _currentTemp = newValue
            self.cm.temp = _currentTemp
           print("Recived new value", newValue)
           self.leb.setTitle("\(_currentTemp)°", forState: UIControlState.Normal)
            self.smallProgress!.progress = CGFloat( _currentTemp - 15 ) / 21.0;
            }

        }
    }
单例
   class MyLocationManager{

    class func sharedManager()->MyLocationManager{
        struct YRSingleton{
            static var sharedAccountManagerInstance:MyLocationManager? = nil;
            static var predicate:dispatch_once_t = 0
        }
       dispatch_once(&YRSingleton.predicate,{
        YRSingleton.sharedAccountManagerInstance = MyLocationManager()
        })

        return YRSingleton.sharedAccountManagerInstance!
    }
}

转json字符串

 func toJSONString(jsonSource: AnyObject) -> String {
        var data = NSData()
        do {
            try data = NSJSONSerialization.dataWithJSONObject(jsonSource, options: NSJSONWritingOptions.PrettyPrinted)
        } catch let error as NSError {
            print(error)
        }
        let strJson = String(data: data, encoding: NSUTF8StringEncoding)
        return strJson!
    }
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值