Mac搭建本地GitLab环境(虚拟机)

最近公司有个需求,需要用Mac系统搭建一个本地的GitLab环境。但是Mac系统上搭建GitLab的教程并不多,而且搭建起来特别麻烦(有兴趣的可以和我交流)。文中采用的是虚拟机的方式来搭建,下面是踏坑的过程记录,希望能让需要的人少走点弯路。

阅读更多

iOS开发抓包工具之Charles使用

在iOS开发过程中,抓包是常见的必备技能之一。这里我们主要介绍一下Mac下的抓包利器Charles(文中版本:4.0.1)。它可以非常方便的抓取Http/Https请求,从而提高我们的开发效率。本文中不提供破解版安装使用说明(网上一大堆),建议使用正版,官方dmg下载地址:点击此处

阅读更多

iOS开发之Xcode常用调试(Debug)技巧总结

最近在面试,面试过程中问到了一些Xcode常用的调试技巧问题。平常开发过程中用的还挺顺手的,但你要突然让我说,确实一脸懵逼。Debug的技巧很多,比如最常见的方式是打个Log,在一些工程中处处可见NSLog。还有就是打断点的Debug方式等。诸如此类,下面就自己在开发过程中常用的Xcode调试技巧简单的做个总结。

阅读更多

项目中常用git命令

项目开发过程中,一般都会用到版本管理工具。Git作为一个强大的分布式版本管理工具,git命令的使用必不可少。我平时在工作中多用诸如SourceTree、CornerStone等工具。后来发现工具虽然大大提高了工作效率,但是作为一名工程师直接使用git命令会不会更显专业一点呢?(此处有点装逼嫌疑请自行忽略往下看)。

阅读更多

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:代理方法。

阅读更多