swift内存泄露,与OC的混合
2016-03-17 00:00
477 查看
1. 避免内存泄露
1)由于闭包引用了self而可能导致的内存泄露,必须如下这样写:
weak var weakSelf = self;
nearByVM = BMKNearByViewModel(onResult: { (address) -> () in
weakSelf?.onGetAddress(address);
});
或者这样
nearByVM = BMKNearByViewModel(onResult: {[weak self] (address) -> () in
self?.onGetAddress(address);
});
2)使用delegate代理循环引用可能导致的内存泄露,必须如下这样写:
weak var delegate : BMKMapViewDelegate?
2. swift的枚举与oc的枚举比较
枚举值后加value
如
switch error.errorCode.value
{
case EMErrorServerNotReachable.value:
}
3. It's the same as the Objective-C API, but uses Swift's syntax.
If your observer does not inherit from an Objective-C object, you must prefix your method with
1)由于闭包引用了self而可能导致的内存泄露,必须如下这样写:
weak var weakSelf = self;
nearByVM = BMKNearByViewModel(onResult: { (address) -> () in
weakSelf?.onGetAddress(address);
});
或者这样
nearByVM = BMKNearByViewModel(onResult: {[weak self] (address) -> () in
self?.onGetAddress(address);
});
2)使用delegate代理循环引用可能导致的内存泄露,必须如下这样写:
weak var delegate : BMKMapViewDelegate?
2. swift的枚举与oc的枚举比较
枚举值后加value
如
switch error.errorCode.value
{
case EMErrorServerNotReachable.value:
}
3. It's the same as the Objective-C API, but uses Swift's syntax.
NSNotificationCenter.defaultCenter().addObserver( self, selector: "batteryLevelChanged:", name: UIDeviceBatteryLevelDidChangeNotification, object: nil)
If your observer does not inherit from an Objective-C object, you must prefix your method with
@objcin order to use it as a selector.
@objc func batteryLevelChanged(notification: NSNotification){ //do stuff }
相关文章推荐
- Swift2.x 中类的计算属性set方法不能访问自身值
- swift2.x不能使用函数重载的问题
- Swift 2.0 自定义cell和不同风格的cell
- Swift - 让程序挂起后,能在后台继续运行任务
- Swift - 委托(delegate)的介绍,及使用样例
- Swift - 闭包的介绍及用法
- IOS开发系列之Swift_UI_TextFIeld
- Swift - 产生不重复数字的随机数生成器
- Swift - 给图片添加文字水印(图片上写文字,并可设置位置和样式)
- Swift - 使用CGBlendMode改变UIImage颜色
- Swift - final关键字的介绍,以及使用场景
- Swift 学习之二十一:?和 !(详解)
- Swift - 实现单例模式
- Swift - 正则表达式的几种使用方式
- Swift - UISearchController初步学习
- Swift - 设置应用程序图标的提醒个数(右上角小红圈)
- Swift - iOS应用的国际化与本地化
- Swift - 实现发送邮件功能
- 在swift中使用oc文件
- Swift - 实现发送短信的功能