一个多月两个APP,还是用自己不熟悉的swift语言,精神极度的紧张,还好终于算是搞完了。好久没过来分享东西了,快来骚扰我。
今天我不是想谈论经验或者技术,而是在项目中遇到的问题,希望大家给出指导性的意见。
- 代理
在OC中无非就是协议,设置代理,遵循协议;我很聪明的将OC代码翻译成了swift语言,但是在我阅读别人代码的时候发现实现代理方法的部分是使用扩展类来做的
extension ImageCarouselView: UIScrollViewDelegate {
public func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
if isAutoScroll {
autoScrollTimer?.invalidate()
}
}
public func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {
if isAutoScroll {
self.setupTimer()
}
}
public func scrollViewDidScroll(_ scrollView: UIScrollView) {
let offsetIndex: Int = Int(collectionView.contentOffset.x / layout.itemSize.width)
let currentIndex = Int(Double(offsetIndex % imageArray.count) + 0.5)
pageControl.currentPage = currentIndex == imageArray.count ? 0 :currentIndex
}
}
我发现不仅仅是代理这块,有挺多部分都会使用extension,请问各位,在swift中哪些情况用extension写比较好的呢?
- 关键字
接触swift比较匆忙,发现竟然有许多是我不理解的。
- fileprivate与private的区别
- guard什么情况下使用
- button添加点击事件为什么会有的需要在方法名前添加@obj说是#selector()是oc的方法
- 还有什么,竟然忘记了,下次见到再补充
- 隐藏tabbar
在swift中隐藏tabbar不像OC那样简单,会稍显复杂。当你push过去隐藏返回过来tabbar也会消失
也就是说在每次push前
viewController.hidesBottomBarWhenPushed = true
push后
viewController.hidesBottomBarWhenPushed = false
- 安全性
在swift中,安全性是比较好的,不同的东西是不能往一块儿放的
let sum = 1 + 1.0 // 会报错,Int不能和double一起操作
var temp = 10.0
temp = "zhu" // 报错