GH Blog

「一个正在不断修炼的程序员」

重拾算法(Java)

最近买了几本算法方面的数,都是Java写的,其实算法重在思维方式,其实用什么语言去实现是无所谓的,之前都是用Swift来实现的,正好抽个机会学习一下Java。 通过Java实现一个动态数组的功能: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 ...

学习优秀的iOS代码(AFNetworking)

学习优秀的代码总是能让我们得到不同的反思,AFNetworking一直作为网络请求的标杆,很多iOS开发者不知道NSURLSession,但是他肯定知道AFNetworking。 AFHTTPSessionManager 如何在NSURL中添加/的字符: 添加/的原因: 重定向 - 如果没有/就会重定向,这样会浪费带宽 表示目录、信息的拼接 SEO 1 2 ...

C中那些被遗忘的知识点

因为最近在看C++的知识点,发现很多C中的知识点有点不记得了,又把书拿出来翻了一下,整理了一些容易忽略的知识点。 函数的定义和实现可以分类,定义的时候可以省略形参的参数名,例如下面的代码: 1 2 int minus(int, int); // 定义 int minus(int a, int b) { return a - b; } // 实现 ...

整理C++笔记

学习C++ 的重要性不言而喻,春节在家没事就整理了一下C++的知识点。 第一天 c++ 中是不能同时存在两个main函数。 getchar() 等待键盘输入。 输出: cout « “xx”。 endl: 换行的意思。 键盘赋值给: cin » xx。 C语言不支持函数重载。【重载 -> 函数名相同,参数的个数,参数的类型,参数的顺序不同。】 ex...

学习优秀的iOS代码(SDWebImage)

SDWebImage,一个iOS图片加载库,在iOS界,一直是标杆的存在,本篇博客不去讨论他的具体代码架构、设计、算法,而是从一个个小的tips来发现这些代码的闪光点。 1. 协议(接口)的使用 自吹一下,作者的这一点写代码的风格和我还是很像的,都很喜欢面向接口编程,整个SDWebImage中存在很多这样的情况,比如:SDImageCodersManager, 光从这个名字就能看...

DFS&BFS 解题心得

最近在一直在刷LeetCode, 一直在练习DFS与BFS的题,练多了发现有很多都是有固定套路的心得: 先写一段伪代码,这段伪代码是下面套路的“白话文” 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 4...

iOS多线程操作

一旦项目中涉及到多线程操作,就会显得异常复杂,尤其是对数据的操作,如何保证高效的“多读单写”呢? 方案有很多种: 可以使用锁[这里就不具体展开了,锁的实现太多了],这里重点说一下第二个方案: 利用GCD实现“多读单写”的功能 1 2 3 4 5 6 7 8 // 创建一个全局的自定义并行队列 dispatch_queue_t globalQueue = dispat...

App主题换肤功能

现在国内很多App,每到节假日,都会搞一些活动,这样就免不了需要一个统一管理所谓“皮肤”功能【这里主要指图片、字体、颜色等资源】,下面就是我设计的”皮肤“功能模块。 主题皮肤切换模块 GCTTheme配置篇 调用GCTThemeManager之前需要注册配置数据, 调用的时机目前是在didFinishLaunchingWithOptions的时候 (这个后期可以修改!!) 1...

关于Kiwi测试框架

安装: 通过Cocoapods安装Kiwi,命令如下: 1 2 3 4 5 target 'xxxTests' do inherit! :search_paths # Pods for testing pod 'Kiwi' end 安装Kiwi的Xcode Template 下载 Kiwi Template 执行安装脚本 sh ./install-template...

关于R.Obj工具

目的 想通过R.Obj这个工具在编译的时候,去管理图片、字符串、主题的资源文件?? 可能会存在多个静态库、或者动态库?? 以及后期如何自定义?? R.obj 问题: 如果图片不放在Assest中的话,会有问题:例如存在图片 Test@2x.png、Test@3x.png, 最后编译成的模板会存在两张图片名称Test2x、Test3x,如果统一将图片统一放入到Asse...