这篇日志写于2016年1月26日0点22分.在大约36个小时前,广州下了场雪.
今天(25日)一起床,就接到个任务是要把远程桌面集成到录课里.好吧,那就开干.当时想rdp不过是个view,加个container不就完事了吗,之后才知道我真是too young too simple.
打开oc版的录课,发现rdp里有一大堆东西,心想这些都是库,没啥问题.(too young).先不管,打算先写UI(too young),运行一下远程桌面吧..因为pc中一些设置策略组的问题,弄了挺久的,最后好歹成功看到运行远程桌面是个神马样子了.于是开始脑补这个tableview要怎么写,那个cell要怎么写之类的.用了一下发现这个rdp的功能还是挺多的,感叹什么库功能这么多(too young).之后看到rdp里有一个controller文件夹,点击,出现了一大坨的文件,都是viercontroller,隐隐感觉到大事不妙.问了下师兄,原来rdp是一个完整的项目.好吧,我放弃了重写UI的念头,心想能把这块东西搬进去就算不错了.
之后把rdp文件夹拖进录课,不管三七二十一,先build一下再说.出现了错误,十分正常.要直接拖进来就能用就真的怪了.看了看错误,发现都是什么arc里不能手动release,dealloc之类的问题,第一反应是把这些语句删掉之后不是就行了么(too young).删着删着,感觉状况不对,这么多哪删得完.于是就开始把有错误的文件改成mrc编译.期中有些文件还要导入一些系统类.
好了,终于可以build了,接下来是理所当然的运行时错误.看了下,才知道rdp里也有storyboard,名字叫Main.好吧,和原本的storyboard冲突了.纳闷为什么老的录课可以这样用,哦,老录课的UI全是代码和xib写的,没用到storyboard.
把rap的storyboard的名字改了一下,然后addsubview,build,竟然就可以用了.惊喜.第一次集成两个storyboard呢.之后把代码上传bitbucket.
可见若一些中等规模的应用,使用storyboard也是可以的,只要每个模块使用一个storyboard,集成的时候就相对简单,没有网上说的那么不堪.
心想怎样再保险一点呢,试试用另一台mac下载放在bitbucket上的代码,build一下,如果成功就万事大吉了.一点build,出现了错误,心头一惊.细看错误,发现都是没找到rdp里面的文件引起的.点开rdp文件夹一看,一片红色.究竟是咋回事呢.原来当时从旧版的录课拉过来的rdp文件夹是通过xcode拉过来的,只是一堆引用,当环境变了,引用自然就无效了.坑爹.算了,重新来一遍.这次从finder中把文件拉进项目,才发现rdp文件夹中的很多文件都是没用的,好吧,对照每一个有错误的文件,先从老版本录课的compile sources中查找,如果没找到,证明这个文件是多余的,删掉.重复以前的步骤,如果有文件里面用到了mrc的特性就要做相应的设置.这下好了,项目里的文件终于不是引用了,上传bitbucket,再试一次build,成功.