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)

阅读更多

iOS开发之基础控件(Swift版)

1、文本(UILabel):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
let titleLabel = UILabel(frame: CGRectMake(0, 0, view.frame.size.width, view.frame.size.height))
//设置titleLabel的文本对齐方式:左:.Left, 中:.Center, 右:.Right
titleLabel.textAlignment = .Center
//设置titleLabel的文本颜色
titleLabel.textColor = UIColor.lightGrayColor()
//设置titleLabel文字的字体为系统字体,大小为15
titleLabel.font = UIFont.systemFontOfSize(15)
//设置titleLabel文字的字体为"Helvetica", 大小为15
titleLabel.font = UIFont(name: "Helvetica", size: 15)
titleLabel.text = "心灵鸡汤,每天一起干"
//titleLabel字体大小自适应宽度,根据指定宽度titleLabel自动调整字体显示大小
titleLabel.adjustsFontSizeToFitWidth = true
//指定titleLabel的显示行数,0代表自动折行
titleLabel.numberOfLines = 1
//获取系统所有字体名称
let fontFamily = UIFont.familyNames()
print(fontFamily)
view.addSubview(titleLabel)

阅读更多

2015年终总结

总结:

回首过去一年,好像没有什么能说出口的成绩,专业没啥进步。在公司做了两款App,上半年主要开发的是一款叫“在线等”的手机应用,这是一款解决人们选择困难症的应用,经过重重困难,最终上线。没啥成绩可言。下半年主要研发的是一款叫“斗图神器”的应用,由于Android版早就开发好了,所以iOS版开发起来就快很多了。总的来说成绩还不错,其中也有点小波折。

阅读更多

iOS FFmpeg编译及kxmovie、iFrameExtractor调试详解(无障碍阅读,绝对是你想要的)

特此声明:本文是通过网上收集整理加上自己亲自实验得来的。感谢所有网上分享的辛勤劳动者,本文仅供iOS学习使用。在学习的过程中,如果有问题或者不清楚的地方,欢迎留言,我们共同探讨互相学习。欢迎批评指正。

如需转载,请注明出处:http://blog.csdn.net/yangshebing21/article/details/43986913

开发环境:最新 ffmpeg-2.5.4/iOS SDK8.1/Xcode6.1/OS X Yosemite版本10.10.2

一、编译ffmpeg库

编译调试ffmpeg库的步骤:

开发环境:ffmpeg-2.5.4/Xcode6.1

(一)、下载ffmpeg源码:

请点击此链接http://ffmpeg.org/download.html

注:我的ffmpeg-2.5.4是解压放至Desktop的

(二)、调试编译ffmpeg源码

1、安装yasm:

阅读更多

UICollectionView(纯代码方式)实现带上下拉刷新的瀑布流式(WaterFlow)布局

瀑布流(WaterFlow)是项目开发过程中的常见布局,有关于瀑布流(WaterFlow)的实现方式:在UICollectionView未出现之前,瀑布流的实现多半是采用UIScrollView或是UITableView。对于我们这种用惯了表视图的人来说,UICollectionView倒略显陌生。有关于UICollectionView的介绍我就不一一赘述,因为一两句话也很难说清楚。网上有很多优秀的文章专门对其进行了一系列的解说,另有苹果官方文档可以查阅。本文主要是介绍如何采用纯代码的方式利用UICollectionView实现带上下拉刷新的瀑布流式(WaterFlow)布局。废话少说,直接入题。

阅读更多

iOS绘制虚线方式总结

一、iOS中绘制虚线常见的几种方式:

1、重写drawRect方法。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
- (void)drawRect:(CGRect)rect
{
[super drawRect:rect];
CGContextRef currentContext = UIGraphicsGetCurrentContext();
//设置虚线颜色
CGContextSetStrokeColorWithColor(currentContext, [UIColor BlackColor].CGColor);
//设置虚线宽度
CGContextSetLineWidth(currentContext, 1);
//设置虚线绘制起点
CGContextMoveToPoint(currentContext, 0, 0);
//设置虚线绘制终点
CGContextAddLineToPoint(currentContext, self.frame.origin.x + self.frame.size.width, 0);
//设置虚线排列的宽度间隔:下面的arr中的数字表示先绘制3个点再绘制1个点
CGFloat arr[] = {3,1};
//下面最后一个参数“2”代表排列的个数。
CGContextSetLineDash(currentContext, 0, arr, 2);
CGContextDrawPath(currentContext, kCGPathStroke);

}

阅读更多

基于GitHub搭建Octopress个人技术博客(Mac版)

作为一名屌逼的程序猿,肯定是要有一个屌逼的技术博客。在交流学习的同时,顺便见证自己成长的心路历程。废话不多说,直接进入正题。编程讲究的四门功课,“说,学,逗,唱”。不会就学嘛!没有就找嘛!网上相关的文章简直太多了!其中原理就不多说,我且按照我搭建的顺序写一下步骤吧!

注意事项:在搭建之前,检查MAC电脑是否已经安装了Git和Ruby 1.9.3及以上版本。(Mac默认均已自带,ruby请自行检查版本:ruby –version,如果缺少,当自行下载)

一、开始安装octopress

阅读更多