美文网首页
我的第一个库-GesturePassword遇到的那些坑

我的第一个库-GesturePassword遇到的那些坑

作者: xiAo__Ju | 来源:发表于2016-08-07 17:59 被阅读0次

之前公司需求,要一个手势密码,Swift的手势密码库似乎好像没有,反正我没有找到,那就用OC的将就一下吧!用的冯成林哥哥的CoreLock。没有cocoapods,这个时代居然没有cocoapods,我估计是方便搬运工们自定义吧。其实我想吐槽一下,哥哥的代码很随意啊。。。

如果你就这样,叫我怎么受得了,果断翻译。

废话不多说了,其实刚开始就想翻译成Swift的,因为公司是用swift开发的。之前对siwft还不是很熟,所以就所以啦,你懂的!最近陆陆续续翻译了几个OC的小库,功力好像有点提升了。

                          这是原版 OC                                          小菜我的

                      RKNotificationHub                         RKNotificationHub.swift 

                       SphereMenu                                 SphereMenu.swift                         

                       VGParallaxHeader                         VGParallaxHeader.swift

还有一些就不贴出来了,有点麻烦有点累。其中还有一个自己写的轮播控件,跑题一下,轮播控件苦恼了我很久,Swift没有太好的轮播库,OC的有一个叫SDCycleScrollView还不错,应该很多人都知道。轮播其实在项目实践中有两个比较严重的问题,第一个是快速滑动,最后或者第一张会卡顿。如果你用的上面那个库,没有发现那个问题,那么请你打开爱奇艺客户端快速滑滑就知道了。第二个是你在将要滚动时切换视图会出现,这个别说你的没有,我测了淘宝的都会有,触发很简单,你把间隔时间设成1s,然后快速切换。

好像扯了半天的蛋,还没有进入正题。莫急,主角出场不都得铺垫铺垫一下吗?接下来,上动图

好像不错的样子哦。

我好像不知道说什么了。。。

首先肯定要感谢原著啊。原著UI使用了一些xib,个人其实是反感xib的。就是不大会呗,装什么b啊。刚开始翻译的时候还比较顺利,因为原著结构理得很清晰。翻着翻着问题就来了。OC的setter getter,我估计很多从OC转过来的同学都和我遇到了同样的问题。

原著是这样写的

在Swift中应该这样

Swift的存储属性是不需要setter 和getter方法的,只有计算属性才需要,如果不定义一个另外一个属性用于存储,直接setter getter会死循环的,具体原因我也不太懂,原谅我这个小菜。其他的好像也没有太多好说的了。

接下来是做cocoapods了,是照着这篇简书做的http://www.jianshu.com/p/98407f0c175b,前几步都挺顺利的,到了配置spec文件的s.source_files那一步,啊,深呼吸一下,折腾了好久。这里特别说一下

那么我的spec文件应该是这样的

因为此时已经在GesturePassword那个文件里了,所以再往里走一层就对了,如果Classes外面还有一个文件夹加aaa那么s.source_files后面应是 "aaa/Classes/**/*.swift",可能是我太蠢了,反正折腾了半天,后面**/*表示的是Classes文件夹的所有文件,包括文件夹。另外几种格式可以参考这个 https://github.com/CocoaPods/CocoaPods/issues/1259。

这是我做库遇到的第一个问题,第二个问题是打tag。

git tag 0.0.1

git push --tags

pod trunk push GesturePassword.podspec

这个几步都做好了,当然之前你还得注册你的账号,然后收到邮件验证才能继续上三步。

突然发现我的库有点问题,三下五除二改好了,commit到git远端,然后pod update一下用到我自己库的那个工程,咦?怎么pods里面的代码没有变化,看一下终端,pod update成功的啊,但是我明明修改了我的库,但是更新为什么不是绿色的?如果一个库是新装的,或者pod update那个库会是绿色的,删除是红色的,不知道大家有没有注意到。

就像这样

继续想一下,哪里错了啊,上网各种查,结果是你更新了你的库后,虽然远端git库你更新了,但是podspec文件还是关联的是你修改之前的那个版本。cocoapods的大概原理就是,cocoapods远端有一个podspec仓库,里面有所有第三个库的podspec文件,如果你用cocoapods管理第三方库,它会把所有的podspec文件拉下来,然后根据podfile文件里的库,找他们的podspec文件,下载对应的库。所以,更新库后又得重新上传podspec文件了。

以上才不多的我遇到的所有问题了,说的不对的地方还请指教。

最后附上GesturePassword

相关文章

  • 我的第一个库-GesturePassword遇到的那些坑

    之前公司需求,要一个手势密码,Swift的手势密码库似乎好像没有,反正我没有找到,那就用OC的将就一下吧!用的冯成...

  • 我遇到的那些坑

    今天公司要求引导页要放视频动画 播放一个十秒的视频 使用AVAudioPlayer 框架播放 代码编写完成后 直...

  • cocoaPods 打包静态库 遇到的坑 and git

    cocoaPods 打包静态库 遇到的坑参考资料iOS 打包.a文件的那些事儿iOS-将自己的库支持CocoaPo...

  • 遇到的那些坑

    1、为了优化代码增加了配置文件,用Python自带的模块configparser。中间增加了公共方法所在目录,导致...

  • 那些年,我遇到的“坑”

    有人说,出生在中国实际选择了人生模式中的“HARD”模式。以前看到这个段子,只是当它是个段子笑笑看了。多年后的今天...

  • IOS 上传IPA遇到的问题

    前言: 最近在上传iOS应用的项目,遇到了很多坑,每次自己遇到坑的时候就想记录下来~~~ 我遇到的第一个坑 原因是...

  • 写作路上我遇到的那些坑!

    无法坚持,是写作路上最大的坑,前段时间我华丽丽的掉进了坑里。 9天停更! 在这过去的几天时间,我并未真正放弃。 毕...

  • 搭建Phabricator我遇到的那些坑

    一.可能会用到的命令 1.重启phd守护线程先进入到Fabricator文件夹下面,然后 $./bin/phd/ ...

  • xmapp遇到的那些坑

    前言:由于php语言需要Apache,MySQL的支持才能搭建php服务。所以我选择了xmapp作为我的集成环境。...

  • 装修遇到的那些坑

    年前急急忙忙终于把一套旧房子的硬装装完了。实在没有精力做家具,年后再说吧。 这是我第二次装修了,虽然有过一次经验,...

网友评论

      本文标题:我的第一个库-GesturePassword遇到的那些坑

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