2017/3/18lesson

Mar 19, 2017

2017/3/15
CoreData的坑
说不清,妈的
首先是NSOrderSet和NSSet的区别
对于One To One和One To Many

中午的时候看了下JavaScriptCore,对RN以前的对语言转换,混合工作有了一些了解。
比如JSValue、JSVirtualMachine、JSContext、JSExport等作用。
Native和JS语句调用交互过程、调用、传值,回传等工作过程等。
看的地址JSCrotCore博客
有点意思,关键是能做出的效果很令我感叹。

有空的时候测试了下另外两个东西:FBNotification、ZipArchive

  1. ZipArChive比较适用于内容稍微大点的内容物,不然小体积下,似乎压缩效果没有很大差异
  2. FBNotification这个有个很厉害的地方,弹出的动作、画面都是可控的,屌爆了,非常喜欢。我对于本地发送localNotification发送没去尝试过,有这个轮子,还是不去整那些东西。

今天给xcode加一个插件,Chisel
但是发生了Homebrew->
Error: Running Homebrew as root is extremely dangerous and no longer supported. As Homebrew does not drop privileges on installation you would be giving all build scripts full access to your system.
这个没想到要怎么操作,好吧,加个sudo估计会好吧,没想到还是不行。
百度查了下找到这个网址:https://segmentfault.com/q/1010000007575129?_ea=1389173

terminal 里面

sudo chown -R $(whoami) /usr/local
把/use/local的owner換成自己,就有write權限了

whoami就是一個命令,會echo當前登錄用戶的名字。當然你知道自己的用戶名,比如jack,就直接

sudo chown -R jack /usr/local
也可以

修改過權限之後,就直接跑

brew install node
不需要再用sudo,因為當前用戶已經有權限寫入/usr/local了或者你用

ls -ld /usr/local
確認一下這個目錄的owner是否已改到自己

Chisel好东西好东西,给力

来工作的这么一段时间,接触SourceTree,确实感觉很是强大。版本回滚,合并,文件差异等都是很实用。今天碰到,将一个Branch合进我的版本,然后,我有一个文件和xib都被遗失了。搞了很久,版本我也找不到是哪一个,最后我点击右上角的文件差异化对比,然后将文件给拷贝出来,要不是这一个操作,我估计以后我在合版本,我一定不会再相信电脑了。

今天很好奇的一个地方:Curl
还没看清Curl的操作方式,我先去看了篇http://www.jianshu.com/p/23cccb3a90b1文章读一读REST API的架构设计。
前面品味不出什么思想,一直到作者的一些感想上面,有点理解REST API设计思路。

  1. API请求中应该加入API版本号,比如在URL中加入版本号:https://api.example.com/v1/,这样API升级就可以将api版本也升级了。
  2. API返回的数据量问题。数据量大的话,估计是得在某些页面数据很大,或者文件传输等,不过视频、图片等估计不能在此列了。
  3. 性能方面我也是赞同的,不过我是前段方面,那么不能做的事,就是不能设计出一些使用猥琐方式暂时完成的功能和逻辑,尽量避免这种错误。
  4. 安全性和用户认证。这一块对于前段来说也是相当重要的。这里其就推荐使用Keychain的方式还有第三方Access Key之类尽可能使其为在启动的时候动态请求。估计这块得用HTTPS加密,然后每几天去更换才能处理好吧。

OK,想到这里,还是没想明白Curl怎么使用,改天有机会用到的时候才会懂吧。

### 缓存策略
今天刚好做到公司要求的一个问题:缓存策略。
要求是将其之前有做的缓存方案,改成带有时间判别的方案,那么如果时间线以内,便不让其再次请求;如果用户手动刷新的话,那就不用去考虑了。

我自己倒是似懂非懂,直接在其基础上,变换成比较麻烦的方案:
未更改保存方案
未更改获取、外部保存方案
在这个基础上,需要更简易处理,稳定。
我觉得要增加一个date,那就说保存的Array外面再包一层Diction吧,增加一个字段:Date
诺,就变成了这个不理想的样子:
更改保存方案
更改保存方案
这里的区别主要就是这种改动范围很大,而且把原有的全都换了一遍。虽说我的做法也能满足需求,但姜确实是老的辣,没能更好的解决这个问题。只能说,他们之前把方案讨论好了,我突然插进来的,搞的时候还是迷迷糊糊的,肯定没把所有方案走一遍,没找到最好的,嘿嘿。
这里处理是给保存时的方法替换一下,变成传入参数增加一个指针,返回的时候就靠着这个保存了文件本身的信息,保存信息等,作为判别当前时长是否超过1小时。
这个方案确实不错。

记录一个犯的错误。
使用Masonry和自动计算行高的Third Part,我将UI贴在了TableViewCell上,而不是TableViewCellWraperView上—>[self addSubview:xx];始终出现控件不如我所想,我觉得不会呀,不可能错呀。
过了2天,我突然想起来,TableViewCell是没有自动布局能力的,要写成—>[self.contentView addSubview:xx];

周六中午得时候自己写了个自我感觉非常良好的主题管理器,基本功能都能达到啦,哈哈,那一刻非常开心。非常开森。