您的位置:首页 > 移动开发 > Swift

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.

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
@objc
in order to use it as a selector.
@objc func batteryLevelChanged(notification: NSNotification){
//do stuff
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: