- 博客(26)
- 收藏
- 关注
转载 iOS:runtime运行时
1.什么是runtime运行时?runtime运行时是一套比较底层的纯C语言API, 属于1个C语言库, 包含了很多底层的C语言API。在我们平时编写的OC代码中, 程序运行过程中, 其实最终都是转成了runtime的C语言代码, runtime算是OC的幕后工作者比如说,下面一个创建对象的方法中, alloc方法和init方法,最终都是通过运行时发送消息来实现...
2015-04-03 13:19:00
113
转载 iOS:AFNetworking
AFNetworking是一个讨人喜欢的网络库,适用于iOS以及Mac OS X. 它构建于在NSURLConnection,NSOperation, 以及其他熟悉的Foundation技术之上. 它拥有良好的架构,丰富的api,以及模块化构建方式,使得使用起来非常轻松.例如,他可以使用很轻松的方式从一个url来得到json数据:1NSURL *url...
2015-03-31 11:55:00
143
转载 iOS:图标尺寸
高清晰度的iPhone和iPod touch(单位:像素)启动影像 :640 x 960APP图标:114 x 114App Store商店:1024 x 1024Spotlight搜索小图标: 58 x 58文档图标: 44 x 58Web Clip图标 :114 x 114工具栏和导航栏图标 : 约40 x 40标签栏的图标:约60 x 60...
2015-03-25 13:26:00
222
转载 视频特效制作:如何给视频添加边框、水印、动画以及3D效果
本文内容来自raywenderlich的这篇文章的翻译:AVFoundation Tutorial: Adding Overlays and Animations to Videos这是我当年做视频大量参考的文章。写得非常好,建议看完我的这篇去看原文。第一节:给视频添加边框今天第一节先讲解如何为一个视频添加边框和动画,首先说明的是,这种边框和动画并不能直接修改视频的某一帧给他...
2015-01-04 12:25:00
416
转载 Objective-C Runtime 运行时之六:拾遗
前面几篇基本介绍了runtime中的大部分功能,包括对类与对象、成员变量与属性、方法与消息、分类与协议的处理。runtime大部分的功能都是围绕这几点来实现的。本章的内容并不算重点,主要针对前文中对Objective-C Runtime Reference内容遗漏的地方做些补充。当然这并不能包含所有的内容。runtime还有许多内容,需要读者去研究发现。super在Objec...
2015-01-04 12:22:00
76
转载 Objective-C Runtime 运行时之四:Method Swizzling
在上周associated objects一文中,我们开始探索Objective-C运行时的一些黑魔法。本周我们继续前行,来讨论可能是最受争议的运行时技术:method swizzling。Method swizzling指的是改变一个已存在的选择器对应的实现的过程,它依赖于Objectvie-C中方法的调用能够在运行时进改变——通过改变类的调度表(dispatch table...
2015-01-04 12:21:00
146
转载 Objective-C Runtime 运行时之五:协议与分类
Objective-C中的分类允许我们通过给一个类添加方法来扩充它(但是通过category不能添加新的实例变量),并且我们不需要访问类中的代码就可以做到。Objective-C中的协议是普遍存在的接口定义方式,即在一个类中通过@protocol定义接口,在另外类中实现接口,这种接口定义方式也成为“delegation”模式,@protocol声明了可以呗其他任何方法类实现的方法,协...
2015-01-04 12:20:00
52
转载 Objective-C Runtime 运行时之三:方法与消息
前面我们讨论了Runtime中对类和对象的处理,及对成员变量与属性的处理。这一章,我们就要开始讨论Runtime中最有意思的一部分:消息处理机制。我们将详细讨论消息的发送及消息的转发。不过在讨论消息之前,我们先来了解一下与方法相关的一些内容。基础数据类型SELSEL又叫选择器,是表示一个方法的selector的指针,其定义如下:1t...
2015-01-04 12:19:00
83
转载 Objective-C Runtime 运行时之二:成员变量与属性
在前面一篇文章中,我们介绍了Runtime中与类和对象相关的内容,从这章开始,我们将讨论类实现细节相关的内容,主要包括类中成员变量,属性,方法,协议与分类的实现。本章的主要内容将聚集在Runtime对成员变量与属性的处理。在讨论之前,我们先介绍一个重要的概念:类型编码。类型编码(Type Encoding)作为对Runtime的补充,编译器将每个方法的返回值和参数类型编码为一...
2015-01-04 12:18:00
54
转载 Objective-C Runtime 运行时之一:类与对象
Objective-C语言是一门动态语言,它将很多静态语言在编译和链接时期做的事放到了运行时来处理。这种动态语言的优势在于:我们写代码时能够更具灵活性,如我们可以把消息转发给我们想要的对象,或者随意交换一个方法的实现等。这种特性意味着Objective-C不仅需要一个编译器,还需要一个运行时系统来执行编译的代码。对于Objective-C来说,这个运行时系统就像一个操作系统一样:它让...
2015-01-04 12:15:00
69
转载 iOS:runtime消息机制
最近在找工作,Objective-C中的Runtime是经常被问到的一个问题,几乎是面试大公司必问的一个问题。当然还有一些其他问题也几乎必问,例 如:RunLoop,Block,内存管理等。其他的问题如果有机会我会在其他文章中介绍。本篇文章主要介绍RunTime。RunTime简称运行时。就是系统在运行的时候的一些机制,其中最主要的是消息机制。对于C语言,函数的调用在编译的时候会决定...
2015-01-04 12:05:00
70
转载 iOS:项目重命名
前言:在iOS开发中,有时候想改一下项目的名字,都会遇到很多麻烦。直接改项目名吧,XCODE又不会帮你改所有的名字。总是有很多文件、文件夹或者是项目设置的项。而且都是不能随便改的,有时候改着改着,编译不了。所以各位重命名项目时,记得先备份好一份噢。本文我会介绍一种方法,是我自己参考了很多资料得出的总结。为什么说是完整呢?因为改名之后,你不会再看到任何有关于之前的项目名字。本文会把...
2015-01-04 11:50:00
64
转载 iOS:新特性展示
+ (void)choseRootVC{ NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSString *saveVersion = [defaults objectForKey:@"CFBundleVersion"]; NSString *currentVers...
2014-11-28 11:41:00
85
转载 iOS :MD5加密
加密方式:+ (NSString *)md5:(NSString *)str{ const char *cStr = [str UTF8String]; unsigned char result[CC_MD5_DIGEST_LENGTH]; CC_MD5(cStr, strlen(cStr), result); return [NSStri...
2014-11-12 12:32:00
50
转载 iOS :绘图
1、画圆弧a、void CGContextAddArc(CGContextRef c, CGFloat x, CGFloat y, CGFloat radius, CGFloat startAngle, CGFloat endAngle, int clockwise)CGContextRef不解释了,x,y为圆心坐标,startAngle为开始的弧度,endAngle为 结束的弧...
2014-11-10 20:06:00
79
转载 iOS:NSAttributedString
NSAttributedString管理一个字符串,以及与该字符串中的单个字符或某些范围的字符串相关的属性。NSAttributedString就是用来存储一串文字以及文字的诸如大小、颜色、字体等attribute的带属性的字符串,具体实现时,NSAttributedString维护了一个NSString,用来保存最原始的字符串,另有一个NSDictionary用来保存各个子串/字符的属...
2014-10-27 11:07:00
122
转载 iOS:深拷贝与浅拷贝
copy与retain的区别:copy是创建一个新对象,retain是创建一个指针,引用对象计数加1。Copy属性表示两个对象内容相同,新的对象retain为1,与旧有对象的引用计数无关,旧有对象没有变化。copy减少对象对上下文的依赖。 retain属性表示两个对象地址相同(建立一个指针,指针拷贝),内容当然相同,这个对象的retain值+1也就是说,retain...
2014-10-18 14:42:00
78
转载 iOS:如何使用xcode5编辑python并运行
python这个脚本语言非常好用。但是发现在mac系统中好像idle并没有在windows下好用。所以觉得python在mac下一定会有一个更好用的编辑器,打开python时发现系统默认的是使用xcode打开的。而且也有语法高亮和关键字自动填充功能。这样说来在mac系统下一定可以使用xcode运行python脚了,但是让我按command+r的时候,发现没有反应,一定是那里出了问...
2014-10-18 14:36:00
424
转载 iOS:多线程断点下载
说明:本文介绍多线程断点下载。项目中使用了苹果自带的类,实现了同时开启多条线程下载一个较大的文件。因为实现过程较为复杂,所以下面贴出完整的代码。实现思路:下载开始,创建一个和要下载的文件大小相同的文件(如果要下载的文件为100M,那么就在沙盒中创建一个100M的文件,然后计算每一段的下载量,开启多条线程下载各段的数据,分别写入对应的文件部分)。项目中用到的主要类如下:...
2014-10-18 14:31:00
101
转载 iOS:数据持久化
iOS中的数据持久化方式,基本上有以下四种:属性列表、对象归档、SQLite3和CoreData1.属性列表涉及到的主要类:NSUserDefaults,一般 [NSUserDefaults standardUserDefaults]就够用了@interface User : NSObject <NSCoding>@property (nonatomic, assig...
2014-10-18 14:25:00
72
转载 iOS:修改项目名
Xcode5修改项目名:目标为:将项目名XCD4改成xcd5。先上结果图:==》1.在左侧的导航区域点击两次项目名,两次间隔时间稍微长些,项目名会变成可编辑状态。将名称修改为xcd5后按enter键弹出一个对话框,这个时候放心的点击Rename就好了,在随后弹出的对话框中点击Enable、OK,第一步完成。2.点击product==>Scheme=...
2014-10-12 13:55:00
83
转载 iOS :UINavigationController
注意:当你的控制器上有导航控制器管理,想设置导航栏,要在NavgationController里面设置- (UIStatusBarStyle)preferredStatusBarStyle{ return UIStatusBarStyleLightContent; }1,创建并使用一个UINavigationContr...
2014-10-11 22:53:00
96
转载 iOS:文本属性(Attributes)
自iOS7推出,文字的处理越来越灵活了,我们该如何使用这些漂亮的文字呢:NSKernAttributeName: @10 //调整字句 kerning 字句调整 NSFontAttributeName : [UIFont systemFontOfSize:_fontSize] //设置字体 NSForegroundColorAt...
2014-09-27 22:16:00
87
转载 iOS:知识点简答
1、堆和栈什么区别?答:管理方式:对于栈来讲,是由编译器自动管理,无需我们手工控制;对于堆来说,释放工作由程序员控制,容易产生memory leak。2、数组和链表什么区别?答:数组是将元素在内存中连续存放,由于每个元素占用内存相同,可以通过下标迅速访问数组中任何元素。 链表恰好相反,链表中的元素在内存中不是顺序存储的,而是通过存在元素中的指针联系到...
2014-09-27 22:11:00
166
转载 iOS:堆(heap)和栈(stack)
操作系统iOS中应用程序使用的计算机内存不是统一分配空间,运行代码使用的空间在三个不同的内存区域,分成三个段:“text segment“,“stack segment”,“heap segment”。1、段“text segment”是应用程序运行时应用程序代码存在的内存段。每一个指令,每一个单个函数、过程、方法和执行代码都存在这个内存段中直到应用程序退出。一...
2014-09-27 21:36:00
78
转载 iOS:UIWindow
一、UIWindow的简单介绍:UIWindow是一种特殊的UIView,通常在一个app中只会有一个UIWindowiOS程序启动完毕后,创建的第一个视图控件就是UIWindow,接着创建控制器的view,最后将控制器的view添加到UIWindow上,于是控制器的view就显示在屏幕上了一个iOS程序之所以能显示到屏幕上,完全是因为它有UIWindow。也就说,没有UIW...
2014-09-27 21:04:00
115
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人