大熊猫猪侯佩 (︶^︶)

hopy是一只贪吃贪睡爱鹅鹅的大熊猫猪

吐槽一下Xcode中的Playground

本文对playground的优缺点做了一个阐述,并将其与Ruby中的irb做了比较,主要是想借机抒发一下作者想怼Ta的美好心情 出发点 苹果的初衷很好,做一个可以快速实验原型的平台.对一些简单的想法,可以来快速印证. 我不知道你们用不用,反正我用playground还是蛮多的. 除...

2019-01-19 09:30:55

阅读数 31

评论数 0

乱弹:Swift单复共体参数类型---与Ruby相比不那么优雅的实现

本文提出单复共体参数的一种实现,同时比较了Ruby中的实现,后者显然更加优雅。适合对Swift语言本身有兴趣,喜欢纠结语法,而且了解其他动态语言的童鞋观看。 什么是单复共体参数? 这是我发明的词… 很简单,就是对于同一类型的对象,既可以传递它的单数形式又可以传递它的复数形式作为方法的参数。 ...

2019-01-06 12:54:34

阅读数 89

评论数 0

CoreData中访问托管对象的NSSet关系属性导致崩溃的解决

本文介绍了再少数情况下,当访问CoreData托管对象中的NSSet关系属性引起App崩溃的现象以及解决. 现象 在访问托管对象的traces关系属性时,App崩溃,提示: *** Terminating app due to uncaught exception 'NSInvalidArgu...

2018-12-31 19:56:35

阅读数 83

评论数 0

化繁为简:Swift剔除数组中重复元素的几种姿势

本文向大家介绍稍许算法的实现:关于如何去除数组中的重复元素,并比较了两种算法之间的效率.全部代码在Xcode的Playground中实现,直观明了,适合Swift学习入门童鞋观赏. 有个前提 如题,很多童鞋立即给出解决方法,无外乎是利用Swift内置的集合(Set)或字典(Dict)的...

2018-12-27 17:23:48

阅读数 155

评论数 0

iOS使用动画连贯过渡界面转换

本博向大家演示如何通过添加动画,为原有界面元素变换增加连贯的过渡效果.为UI代码一丝动态与活力感. 缘起 第三方的一个图片裁剪器,拿过来做了几点修改: 将其封装到动态库中,方便集成 扩充了一些功能,比如等待菊花和是否允许进行裁剪等 用封装好的动态库创建了一个ImageCrop...

2018-12-22 13:02:23

阅读数 11233

评论数 3

一招搞定Xcode错误日志显示use -v to see invocation的问题

本博向大家展示了当Xcode出错信息匮乏,完全不知所云时,如何找到真正的错误原因的方法。简单有效,你值得拥有。 抽风的Xcode? 极少数情况下,Xcode编译出错的信息完全让人摸不着头脑,比如下面一段: <unknown>:0: error: me...

2018-12-20 21:11:13

阅读数 158

评论数 0

Swift调用协议扩展导致崩溃的解决

本博向大家介绍Swift对象委托的一种变通方法,但遗憾的是该方法在Swift 4.2中会导致App崩溃,生活还要继续,且看本猫如何解决它喽. 什么是对象委托 简单的说对象委托就是对象A假装对象B,当然A和B的类完全不同. 用过Ruby的童鞋都知道,这很容易完成: Class Acc...

2018-12-19 10:36:25

阅读数 179

评论数 0

Swift中集合(Set)无法删除自身对象的临时解决方法

这是本猫遇到的比较怪异的问题之一:明明在集合中的对象,但却无法直接删除它。由于原项目较为复杂,为了演示目的,本猫对博文示例代码做了简化,但并不影响问题的表述。 背景介绍 App逻辑很简单,对象Node对应着TableView中每一行,你不用知道Node对象到底是啥,你只要知道它是列表每...

2018-12-15 16:52:50

阅读数 165

评论数 1

Xcode真机运行App行为怪异且断点无法触发的解决

系统环境 MacOS 10.12.6 4GB MBA,编译环境 Xcode 9.2 Swift 4.1 问题现象 在模拟器上编译运行一切正常,但在真机上编译运行时发现某一个界面显示方法总是返回错误的内容。 关键是在该方法上下断点竟然无法触发,是的,我100%肯定会调用该方法!!! ...

2018-12-12 21:53:09

阅读数 87

评论数 0

iOS一步步妆点动画使界面元素迸发新活力

本博在iOS原有静态界面的基础上,一步步尝试使用动画来突出选择动作,使原来呆板的元素瞬间鲜活了许多,为用户打造活力满满的界面。 没有动画的世界 原来的界面很简单,用户通过段选择器(UISegmentedControl)来选择切换两个不同的UILabel,如下所示: 由上至下两个UILabel...

2018-12-05 14:07:59

阅读数 132

评论数 0

iOS解决控制器转场和返场界面卡顿的一种方法

本博介绍了在控制器转场和返场时界面发生卡顿的一种解决方法,主要思想是使用视图快照功能来提供一个静态的伪视图以提高性能. 转场和返场 转场是指从控制器A切换到控制器B中,这意味着控制器A被隐藏: 控制器A -> 控制器B 而返场是指从控制器B切换回控制器A,这意味着控制器...

2018-12-02 16:33:41

阅读数 1015

评论数 0

iOS:UITableViewCell中Label位置无法正确约束的问题

由于UITableView中某一行文字过多,需要扩展Cell的高度,该Cell的样式是.subtitle: 注意其中的detailTextLabel并没有垂直居中!!! 咋一看解决应该很简单,做一个约束不就行了: $0.cell.detailTextLabel?.snp.updateConstr...

2018-12-01 09:40:47

阅读数 84

评论数 0

Swift中由找不到removeAll(where:)方法引起的连锁反应(下)

提示:本篇博文涉及到第三方库Eureka,但核心思想在于Swift内部数据处理的推断,不了解Eureka并不影响对本文的理解。Eureka只不过是对UITableView的便捷包装而已,需要进一步了解Eureka的童鞋可以观赏本猫Eureka学习系列博文。 上篇在此 : Swift中由找不到r...

2018-11-29 12:25:13

阅读数 109

评论数 1

从App随机崩溃(KVO_IS_RETAINING_ALL_OBSERVERS...)到彻底修复的回顾(上)

本博通过具体的实例向大家展示如何一步步通过合(xia)理(cai)分析找出问题的罪魁祸首,适合有一定调试经验的童鞋,也欢迎各路神仙和小白围观,本人水平一般,欢迎指正,但我就是不改. 崩溃特征 0.崩溃的类型是EXC_BAD_ACCESS 1.App崩溃虽说是随机的,但在一定次数的相同...

2018-11-27 11:06:53

阅读数 818

评论数 6

Swift中由找不到removeAll(where:)方法引起的连锁反应(上)

提示:本篇博文涉及到第三方库Eureka,但核心思想在于Swift内部数据处理的推断,不了解Eureka并不影响对本文的理解。Eureka只不过是对UITableView的便捷包装而已,需要进一步了解Eureka的童鞋可以观赏本猫Eureka学习系列博文。 核心代码 section.r...

2018-11-23 07:42:04

阅读数 1639

评论数 7

更仔细些:让你看懂Xcode链接错误提示

修改了代码里一个地方,编译都过不去,Xcode提示如下: 注意,只是链接器报错,但并未定位到实际代码的某一行里!!! 一般来说这个问题往往是因为代码对象.o文件和实际不一致导致,我们需要删除App文件或.o,文件确保其重新生成即可。 但在这里却又不一样… 因为检查.o文件名,并不在一个库中! 仔...

2018-11-18 15:10:42

阅读数 93

评论数 0

iOS获取iCloud文件实际大小的方法

我们知道在iCloud文件未同步到本地之前,它实际上只是一个占位文件。 如果iCloud文件名为look.pdf,那么实际本地的文件是.look.pdf.icloud,尽管你实际在Find中看到的貌似是look.pdf。 实际上.look.pdf.icloud是一个二进制的plist文件(bpli...

2018-11-18 13:12:48

阅读数 252

评论数 0

Swift与Objc混搭在数组内部查找时需要注意的一点

现在随着Swift越来越趋于完美,很多人开始使用Swift来写代码. 在Swift与Objc结合使用时,还是要注意一些地方,比如数组元素的查找. 从Swift里传入一个Node对象,在Objc里Node数组里查询,往往你就找不到

2018-11-16 10:14:20

阅读数 67

评论数 0

Swift让数组支持深拷贝

当数组的元素为对象时才考虑深拷贝,如果是结构就没有意义了。 只有数组的对象支持NSCopying协议时,数组才可以支持深拷贝。 有了如上共识,我们可以很快写出Demo来: 首先是测试类: class Foo:NSCopying{ func copy(with zone: NSZone? =...

2018-11-15 14:59:19

阅读数 163

评论数 0

iOS本地化对于字符串可变内容支持的一个小技巧

我们知道iOS对于App本地化支持提供了较方便的接口,我们只需要在本地化支持文件中设置好各种语言对应的字符串就可以了,比如: //英文 “NameString" = "Name"; //中文 "NameString&...

2018-11-14 16:09:42

阅读数 99

评论数 0

提示
确定要删除当前文章?
取消 删除