2017/4/11Lesson

Apr 11, 2017

2017/3/23
最近用黑苹果开发,稍稍适应了下黑苹果开发了。
首先黑苹果如果出现警告、QQ新消息什么的,屏幕会闪一下。这是因为系统要弹出音频警告声,但是没有音频驱动,所以就闪一下吧。查找了下,没有找到可以关掉那玩意的地方。

最近到粉粉这类公司之后可以感觉得到,这类公司今天都是拼了命了。今天要是不进步,估计要出问题,所以老板也是经常下来“打交道”,转一转了。是时机,也是机会,也是一手扑空等可能机会。完全看自己选择了。

今天用git在gitLab上签名,以前都是填密码什么的。然后一直连不上git,无法push,今早来,同事让我不要填密码、这个Enter passphrase for key '/Users/xxtstudio/.ssh/id_rsa':出现也直接按enter就可以了。然后就OK了。一直按enter键哦。

并发数,并发机子;
查询语句优化;
数据量大小也会影响客户端获取数据速度;
带宽,影响不大;只说了大概用了5M;并发机子用了5个左右;其他基本都是小测试机子;

这里返回一下滤镜功能话题。
我以前的公司处理滤镜时候,是多使用了level色阶滤镜,这样可以很方便在里面添加5个参数,就能达到大部分需求。
昨晚公司博士看了些文章,跑过来提议说可以这样处理:使用GPUImageLookupFilter滤镜,先将图片按照某些好的效果在Photoshop里面调节好,然后将GPUImage的原滤镜的方格图在PS里面将之前的数值和step走一遍,这时候GPUImage的原方格图就变了模样。其实这时候就是可被使用的image了。然后在GPUImage里面使用lookup滤镜添加进去,然后就有一定的效果了。

这里记录一个解决动画不动的一个问题:
由于我做的几个动画,比如云从左至右,或者从右至左一个感觉,但是其又有多了一个属性,叫做autoReverse,自动往回走,此时我创建的6个云在被重利用的时候由于动画被autoReverse,所以动画还没有结束,但是记录的动画最长运行时间longestTime已经到了,却出现没有将可用的对象抽出来,所以导致我寻找可用对象时,出错了-》崩溃在for循环里的重复寻找对象当中,然后又被continue,重新寻找。

这两天接触网络层,先进入浅一点的地方学习。比如GET请求,一般都是静态数据,POST请求,都是动态数据,于是可以使用缓存方式在网络层中将GET请求缓存下来。当然,也有GET是需要实时更新的,于是将你的url+parameter中的parameter实时更新,在判别request.hash是否在缓存中存在时,就能知道GET在缓存中不存在,于是,其还是要去更新。这样子就做到,GET静态数据缓存其数据,要更换则将其hash变动。

http://blog.csdn.net/sw_gegewu/article/details/51443478
UIPageControl是用来显示分页的,一般和scrollerView一起搭配使用,但是UIPageControl的内部属性很少,就仅仅下面的几个,
(1)numberOfPages; // 总共有多少页
(2)currentPage; // 当前页数
(3)hidesForSinglePage; // YES表示当页数只有一个的话就隐藏不显示
(4)pageIndicatorTintColor; // 所有页的颜色
(5)currentPageIndicatorTintColor; // 当前页的颜色

如果想要把当前页设置为镂空的,可能就不好办了,但是可以通过给起属性内部赋值,
// 设置内部的原点图片
[pageControl setValue:[UIImage imageNamed:@”“] forKeyPath:@”pageImage”];
[pageControl setValue:[UIImage imageNamed:@”“] forKeyPath:@”currentPageImage”];
这样的话就可以达到效果了。

占位文字颜色设置
self.textInputView.attributedPlaceholder = [[NSAttributedString alloc]initWithString:AppLocalString(@”设置日期”) attributes:@{NSForegroundColorAttributeName:[UIColor colorWithHexString:@”#97858A” alpha:1]}];

此处记录一次纠结的崩溃问题:
我在改动之前的缓存策略的时候,由于有些在Build过程中和搜索过程中没有提示一定要更换的api,于是我没有给某几处function更换,某一处位置刚好是图片SDK位置。
原先要传进去的是BOOL指针,更换方案使用NSTimeInterVal的指针。
两者内存地址空间大小就不一样,于是出现了使用的内存不够,引发了崩溃。此种崩溃在DEBUG环境,竟然没有反应,只有真机Release环境下才会崩溃,头疼的地方来了,需要真机Release测试时,Entitlements的识别文件不是我这个机子。如果我要重新制作Entitlements文件,不知道是否会影响项目某些操作,作罢;
看Bugly输出?我这里没有账号查看,另一个同事帮忙看了下,没有发出来,暂时作罢;
我手头还有某一个功能急于完成,连续加班两天无果;而且其崩溃位置在其他类似位置有同样表现;我对该APP之前功能没有认知,以为其之前便有存在,想让其延后;
等等原因致使这个bug存在几个时日。最后是一个同事配合Bugly将许多行log打在不同位置,看走到哪里,慢慢定位出问题。

总结一下,这个问题是我的锅,也可以不是我的锅,但是我要注意类似的事情再发生。是我的锅,原因在于一系列的原因,加之任务比较重,UI时时改动,功能不明确带来预期时间的延长而使得没有更多时间注重于效能上。
不是我的锅在于:之上也说了效能和时间成正比,急于加之诸般成果,必失之他项。无法看到log,等于找到问题能力全部失去:盲人无法行走,除非有个类似于log的拐杖的帮助。
我还是要继续稳中求果,切勿操之过急,不过一切基于时间。

记录一个BUG,使用CoreGraphics裁剪Image,却会将Image变大。这个问题还没有认知,之后查出来会记录一下。

今天花时间阅读了下objc的runtime,理解了以前没能凑在一起看的知识点。网址:http://www.cocoachina.com/ios/20170301/18804.html

  1. 获取类名
  2. 获取成员变量
  3. 获取成员属性
  4. 获取类的实例方法
  5. 获取协议列表
  6. 动态添加方法实现
  7. 方法实现交换
  8. 属性关联(动态添加相应的属性),完成在一个类中动态添加方法,同时生成set、get方法
  9. 消息处理与消息转发,这一块粗略的看了下,没有深入了解。。。当做看过一下。

看完这篇,再看这篇http://www.cocoachina.com/ios/20170228/18798.html,收益匪浅啊

最近查资料老是觉得这个网站:“xxxxx - 红黑联盟”经常能查到的都是挺不错的别人记录过得文章。简洁易懂类型。
再来看我今天想要查找的一个关于UDID和UUID的获取,网址:http://www.2cto.com/kf/201605/513333.html

1
2
3
4
5
6
UDID,iOS 5以前使用:[[UIDevice cuurrent] uniqueIdenfier] 现在不可能了。现在使用

NSUUID *uuid = [UIDevice currentDevice].identifierForVendor;
NSLog(@"uuid 1 = %@",uuid.UUIDString);

UUID,NSString *uuid = [NSUUID UUID].UUIDString;

这里记录一个bug,我做的一个HUD,继承与UIView。我选择了用keyWindow作为父布局,然后在某些情况下会出现弹出来,又诡异的消失了,牛逼;然后我给他改成windows[0]:第0个,这个时候还会出现第三方库SVProgressHUD和我的HUD一起弹出来,这时会出现window在那,然后全屏点不了了。没办法,使用最后一个招吧,使用APPDelegate的window作为底部试图,这样终于解决了。

记录git问题。每次打开project,git都会记录,但是这不是我们想要的,我们只想给我们改过的代码进行commit,其他不需要。

1
2
cd /xxxProject
vim .gitignore

然后输入:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
build/*
*/build/*
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
profile
*.moved-aside
DerivedData
.idea/
*.hmap
DS_Store

#CocoaPods
Pods
Podfile.lock
build*
pics*

这时还没生效,要么全部quit掉,要么clean cache:

1
2
3
4
5
改动过.gitignore文件之后,在repo的根目录下运行:
git rm -r --cached .
git add .
之后可以进行提交:
git commit -m "fixed untracked files"