Hexo博客搭建步骤

之前一直想着把博客从Octopress迁移到Hexo。由于前阵子工作比较繁忙,所以这个想法就被搁置下来了。今天有时间,就开始着手博客搬家吧!Hexo主题非常多,好友刘春桂给我推荐了一款简洁的主题Maupassant。现在用着,感觉还不错。下面我就简单的整理一下迁移Hexo步骤:

阅读更多

iOS图形绘制CoreGraphics篇

1、绘制直线

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

//获取当前上下文
CGContextRef contextRef = UIGraphicsGetCurrentContext();
UIColor *color = [UIColor colorWithRed:0.5 green:0.35 blue:0.8 alpha:0.7];
//设置线条颜色
// CGContextSetStrokeColor(contextRef, CGColorGetComponents([UIColor redColor].CGColor));
//官方推荐首选这个API
CGContextSetStrokeColorWithColor(contextRef, [UIColor redColor].CGColor);
//设置线条颜色
CGContextSetLineWidth(contextRef, 5);
//设置线条端点(不带端点)
CGContextSetLineCap(contextRef, kCGLineCapButt);
//设置线条绘制的起始坐标点
CGContextMoveToPoint(contextRef, 50, 20);
//结束点
CGContextAddLineToPoint(contextRef, 100, 20);
//绘制线条路径
CGContextStrokePath(contextRef);

阅读更多

iOS图形绘制UIBezierPath篇

1、绘制直线

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
UIBezierPath *line = [[UIBezierPath alloc] init];
//设置线宽
line.lineWidth = 3;
[line moveToPoint:CGPointMake(50, 20)];
[line addLineToPoint:CGPointMake(150, 20)];
//设置绘制线条颜色,这个地方需要注意!UIBezierPath本身类中不包含设置颜色的属性,它是通过UIColor来直接设置。
[[UIColor orangeColor] setStroke];
/*
*线条形状
*kCGLineCapButt, //不带端点
*kCGLineCapRound, //端点带圆角
*kCGLineCapSquare //端点是正方形
*/
line.lineCapStyle = kCGLineCapRound;
[line stroke];

阅读更多

Swift2.2新特性

1、编译期Swift版本检测

1
2
3
4
5
6

#if swift(>=3.0)
print("Running Swift 3.0 or later")
#else
print("Running Swift 2.2 or earlier")
#endif

它和Swift2中介绍过的#available表达式不同,#available表达式是运行时检查,#if swift(>=3.0)... #else... #endif是编译期检查。

一个警告:这个特性这次不可用,因为Swift2.1编译器并不知道#if swift(>=2.2)意味着什么。然而,一旦Swift3.0以及未来所有版本可用,Swift编译期版本检查将会是一个非常有用的工具。

阅读更多

iOS面试题系列之常见算法

iOS面试中熟悉常见算法

1、 对以下一组数据进行降序排序(冒泡排序)。“24,17,85,13,9,54,76,45,5,63”

阅读更多

iOS面试题系列之UI相关

1、 简述app启动周期。

打开应用程序,它先会执行main函数,再执行UIApplicationMain函数。初始化
UIApplication,设置代理对象,开启事件循环,调用代理方法进行事件处理。

首先会调用application:didFinishLaunchingWithOptions:代理方法。

阅读更多

iOS面试题系列之Objective-C相关

1、简述你项目中常用的设计模式。它们有什么优缺点?

常用的设计模式有:代理、观察者、单例。

(1)单例:它是用来限制一个类只能创建一个对象。这个对象中的属性可以存储全局共享的数据。所有的类都能访问、设置此单例中的属性数据。

优点:是它只会创建一个对象容易供外界访问,节约性能。

阅读更多

React Native iOS 开发环境搭建

一、React Native基础环境搭建

1、安装Homebrew

打开终端输入:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

阅读更多

Swift内存管理(ARC)之循环引用

Swift中是采用自动引用计数(ARC,AutomaticReferenceCounting)机制来对内存进行管理的。

一、简述ARC如何工作:

每当你每创建一个新的对象,它便会分配一块内存来存储该对象的相关信息。当你不再需要这个对象的时候,它就会自动释放这个对象,避免它再占用内存空间。当然,如果该对象只要至少存在一个引用就不会被释放。另外,你如果访问了一个已经被释放的对象,则很有可能会出现崩溃(野指针)。
拿《The Swift Programming Language》里面的例子来套一下:

1
2
3
4
5
6
7
8
9
10
11
12
13
//创建一个Cat类,自带常量name属性
class Cat {
let name: String
init(name: String) {
//初始化name属性
self.name = name;
print("\(name) 对象已经被初始化")
}

deinit {
print("\(name) 对象释放成功!")
}
}

阅读更多

Swift中UITableView的用法(自定义UITableView和UITableViewCell)

一、自定义表视图(UITableView)

阅读更多