与Cocoapods抗战的一天

在升级Mac系统到macOS High Sierra(10.13.4)的时候,出现升级失败导致开不了机,所有的数据全没了。 🌶🐔🍎💊 之前的系统环境都要全部重新配置,在配置cocoapods的时候遇到了一些问题,特此记录。 安装cocoapods依赖的环境 这步网上有很多教程,就不再赘述。 然而安装完后,在执行 pod install 或 pod update 时,就会出现如下错误: ArgumentError - Malformed version number string /Library/Ruby/Site/2.3.0/rubygems/version.rb:209:in `initialize' /Library/Ruby/Site/2.3.0/rubygems...
点我阅读更多...

Associated Objects 小记

在一个 viewController 的生命周期内,只执行一次某段代码,怎么做? 第一种方法是最常见也是最简单的方法,加标记位。 还有没有更优雅的办法呢?面向 Google 编程,得到这个答案: void (^excuteOnce)() = ^{ if (objc_getAssociatedObject(self, _cmd)) { return; } objc_setAssociatedObject(self, _cmd, @"Launched", OBJC_ASSOCIATION_RETAIN); // some code }; excuteOnce(); 什么是 Associated Objects ? OC 有一个...
点我阅读更多...

记一个selectedBackgroundView的坑

今天在解 bug 的时候遇到了一个非常奇怪的问题,单击 cell 进行选中的时候,cell 中的一条用 UIView 实现的横线 seperateLineView 消失了。 看了一圈所有跟这个 seperateLineView 相关的代码,却看不出任何可能改动到包括 frame ,alpha ,hidden 的地方。这个时候就想起了关门打狗。 命名一个新的 UIView 的子视图 TestView : @interface TestView : UIView @end @implementation TestView - (void)setBackgroundColor:(UIColor *)backgroundColor { [super setBackgrou...
点我阅读更多...

用 Swift 协议扩展和泛型来实现复用[译]

作为一个iOS开发者,最常用的任务就是通过自定义cell的子类,来实现UITableView或者UICollectionView的自定义。并且 UITableView 和 UICollectionView 在注册自定义cell子类这一块都有非常类似的API: public func registerClass(cellClass: AnyClass?, forCellWithReuseIdentifier identifier: String) public func registerNib(nib: UINib?, forCellWithReuseIdentifier identifier: String) 对于注册cell的自定义最常用的解决办法就是,声明一个reuseIde...
点我阅读更多...

谈谈贝塞尔曲线

最近在做项目的时候,需要用到一个动画,非常简单的动画,简单到就是直接对一个View做平移… 然而虽然动画简单,但是却很不自然,尝试了UIView Animation提供的各类参数,都无法达到想要的动画效果。这时候,我的脑子里突然想起一个词… “贝塞尔曲线”…. 这个词经常看到,但却从没有去了解过,这次就趁着有求于它的雅兴,好好做个入门了解好了。 首先,什么是贝塞尔曲线? 显而易见的是,贝塞尔曲线,应该就是是一个叫贝塞尔的人发明的曲线吧,然而历史剧本却不是这么写的。贝塞尔曲线所依据的最原始的数学公式,是早在1912年就广为人知的伯恩斯坦多项式。OK,now,What is boensitan duoxiangshi?!简单来说,伯恩斯坦多项式可以用来证明,在[ a, b ] ...
点我阅读更多...

断点调试 autolayout

对于 iOS 和 OS X 开发者来说,Autolayout已经逐渐变成一个至关重要的开发工具。它让多屏幕适配变得小菜一碟(peasy),但是有些时候它还是会把我们搞疯掉,因为它总是会出现那些啰嗦又没啥用处的错误警告。 就像这样: Unable to simultaneously satisfy constraints. Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the...
点我阅读更多...

Ghost博客折腾之旅

实习了刚好一个月了,可是回过头去却发现过去的那个月里似乎并没有留下什么。其实我知道,不是没有留下,而是没有记录。于是就萌生了写博客的念头。 工欲善其事,必先利其器。 第一篇博文就讲讲怎么样搭建一个自己的独立博客。 我使用的是DigitalOcean + Ubuntu 14.04 + Ghost 1.首先到DigitalOcean上申请一个VPS 5美元一个月的就够了。最好还是选择 San Francisco 节点,比较稳定,怎么申请不做赘述。 这里有个小福利,上 Github Education 申请一个student pack里面包含100美元的do的券。详情戳这里 2.申请完VPS就可以直接SSH了 ssh root@ip地址 不出意外的话一般就能进得去。 然后记得p...
点我阅读更多...