美文网首页
荷月二十四 iOS小记 【H5离线包/类扩/信号量崩溃/Pod下

荷月二十四 iOS小记 【H5离线包/类扩/信号量崩溃/Pod下

作者: 不不不不同学 | 来源:发表于2019-06-24 11:11 被阅读0次

1、Html离线包发现放进项目之后一直只能加载html文件,而其它css、js文件都错误加载。几个关键点记录一下
(1)使用Safari进行调试,快速定位问题原因 iOS调试WebView,简单到无门槛
(2)路径即使对于html正确,但因为有个baseUrl,如果BaseUrl对于其它文件不正确,那其他文件就加载不出来。
(3)顺便也了解一下前端中路径的使用规则 前端中使用路径 / ./ ../ ../../ ../../../ 的含义

2、如果通过Category重写本类的方法,则真正调用起来,会调用Category类扩中的方法,而本类中,原来的方法则不会调用。

3、我一直以为,alpha仅仅是修改了UIView的透明度,没想到也会影响点击事件。如果透明度alpha变为0,则点击直接穿过UIView,去到更低一层的UIView。

所以alpha,并不是简单的透明度 + 用户势能的开关。

4、记录一下,原本是使用蓝湖上的一个渐变图片。但是出现条纹,最后原因是蓝湖对图片进行了压缩,因此才出现条纹,最后将压缩选中取消,使用原品质图片就没有条纹了。

5、比较CG类型的值是否相等

// 比较CGRect是否相等
CGRectEqualToRect(rect1, rect2)

// 比较CGPoint,两个点是否相等
CGPointEqualToPoint(point1, point2)

// 比较CGSize,两个size相等
CGSizeEqualToSize(size1, size2)

6、遇到了一个崩溃问题

// 崩溃报错为:
Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)

原因是sem信号量一直在等待,没有释放,因为逻辑上有点问题,而出现了wait和signal不对等的情况。

7、给UILabel加下划线

   // 下划线
   NSDictionary *attribtDic = @{NSUnderlineStyleAttributeName: [NSNumber numberWithInteger:NSUnderlineStyleSingle]};
   NSMutableAttributedString *attribtStr = [[NSMutableAttributedString alloc]initWithString:@"下划线" attributes:attribtDic];
   self.label1.attributedText = attribtStr;

   // 删除线
   NSDictionary *attribtDic2 = @{NSStrikethroughStyleAttributeName: [NSNumber numberWithInteger:NSUnderlineStyleSingle]};
   NSMutableAttributedString *attribtStr2 = [[NSMutableAttributedString alloc]initWithString:@"中划线" attributes:attribtDic2];
   self.label2.attributedText = attribtStr2;

8、打企业包过程,发现编译出来的包多了一个文件夹 _CodeSignature,Release真机包里边没有,但Release模拟器包里边就会有。
所以现在我打包过程,也是直接用真机的包来生成四架构包。而不用模拟器的包。

9、客户遇到了CocoaPod一直无法Pod进去一个库的问题(SQLiteRepairKit)。

客户报错为:

error: RPC failed; curl 18 transfer closed with outstanding read data remaining
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed
[!] CocoaPods was not able to update the `master` repo. If this is an unexpected issue and persists you can inspect it running `pod repo update --verbose`

初步推测,还是因为墙的原因。参考一篇文章 pod update更新error: RPC failed;

文章作了一点参考:
(1)命令的作用
(2)提醒了需要更换源

// 本句作用是安装cocoapods的,估计意思也是让你重装cocoapod了,个人觉得这样吧比较耗时,所以也没有尝试
$sudo gem install -n /usr/local/bin cocoapods 

// 本句作用是将 地址中的specs文件 克隆到后者路径中
$Git clone https://github.com/CocoaPods/Specs.git  ~/.cocoapods/repos/master 

我让客户 gem sources -l,来查看源,客户的源是https://rubygems.org/,果然是比较旧的那一个,因此我让客户执行以下命令,来更换源。
gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
pod install之后,客户就不会报刚才的错误了,但是却仍然一直未pod成功,等了半个小时也仍然停留原地。

猜测这仍然是网络原因,的确有可能会下载失败的,因此建议control + Z,然后再pod install。重复几遍来尝试不断下载,大概等个8分钟也反应就可以重试了。

最后客户尝试一两遍之后就下载成功了。

其中也了解了客户的repo,pod repo,可查看。
发现客户已经将 https://github.com/CocoaPods/Specs.git 添加到了 ~/.cocoapods/repos/master 目录下,证明刚才那篇文章的内容也不适用了,因为客户本身已经是如此了,那就只能是等不断尝试下载了。

另外最后同事第二天会议也提出可以将自己电脑的包,给客户直接发过去,让他放在对应目录下,这样就需要下载了。我猜测应该是这篇文章提及的做法。
pod repo update 快速更新

相关文章

网友评论

      本文标题:荷月二十四 iOS小记 【H5离线包/类扩/信号量崩溃/Pod下

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