- 博客(47)
- 资源 (20)
- 收藏
- 关注
转载 iOS的Mantle实战
公司项目之前的model层代码是我使用JSON工具直接生成Objective-C代码的,当时还是觉得相当省事的,毕竟我经历过无model层的NSDictionary“黑暗”时期。但是随着项目的推进,问题开始慢慢显现出来。 于是,在一个多月前,我在Objc.io上看到提及了Mantle,花了一点时间看了一下,决定先在分支上全套改用Mantle。使用了一段时间,性能没造成什么瓶颈,稳定
2015-06-24 01:23:04
1182
原创 面试
1. 浅复制和深复制的区别? 答案:浅层复制:只复制指向对象的指针,而不复制引用对象本身。 深层复制:复制引用对象本身。 意思就是说我有个A对象,复制一份后得到A_copy对象后,对于浅复制来说,A和A_copy指向的是同一个内存资源,复制的只不过是是一个指针,对象本身资源 还是只有一份,那如果我们对A_copy执行了修改操作,那么发现A引用的对象同样被修改,这其实违背了我们复制拷贝的一个思
2015-05-19 09:33:44
592
原创 Categories和Extensions
Categories功能:将同一类的方法放到一个Category(类别)中// Fraction是Category属于的类,MathOps是Catgory,只能定义方法@interface Fraction (MathOps)@end @implementation Fraction (MathOps)@end Extens
2015-05-19 09:16:07
519
转载 NSString什么时候用copy,什么时候用strong
大部分的时候NSString的属性都是copy,那copy与strong的情况下到底有什么区别呢?比如:@property (retain,nonatomic) NSString *rStr;@property (copy, nonatomic) NSString *cStr;- (void)test:{ N
2015-05-17 07:11:06
461
转载 NSString属性什么时候用copy,什么时候用strong?
我们在声明一个NSString属性时,对于其内存相关特性,通常有两种选择(基于ARC环境):strong与copy。那这两者有什么区别呢?什么时候该用strong,什么时候该用copy呢?让我们先来看个例子。示例我们定义一个类,并为其声明两个字符串属性,如下所示:1234@interface TestS
2015-05-17 07:10:08
449
转载 Objective-C学习备忘单
终极版本的Objective-C教程备忘单帮助你进行iOS开发。 想开始创建你的第一个iOS应用程序么?那么看一下这篇很棒的教程吧:Create your first iOS 7 Hello World Application 注:这篇文章我写了三天,可能在一些必要的地方使用了编辑和说明,所以如果有任何疑问和修改建议请在下方评论。 这不是一个初学
2015-05-17 06:20:09
772
转载 HTTP协议详解
Author :Jeffrey引言HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出。HTTP协议的
2015-05-11 03:10:47
876
转载 GCD介绍: 基本概念和Dispatch Queue
iOS的三种多线程技术1.NSThread 每个NSThread对象对应一个线程,量级较轻(真正的多线程)2.以下两点是苹果专门开发的“并发”技术,使得程序员可以不再去关心线程的具体使用问题ØNSOperation/NSOperationQueue 面向对象的线程技术ØGCD —— Grand Central Dispatch(派发) 是基于C语言的框架,可以充分利
2015-05-11 02:15:02
676
转载 利用Xcode自动生成项目文档
在写代码的时候,如果按照一定的规范在头文件里写上注释的话,就可以利用Xcode的文档自动输出功能生成一份完整的HTML项目文档。生成的格式和Apple Developer网站上的API文档几乎是一样的。我们来看看如何利用Xcode生成项目文档。步骤:1. 在XCode里点击Project,然后点Add Target给项目添加一个TARGET2. 在添
2015-05-11 02:08:02
595
转载 在objc项目中常量的使用
objc不像java,有静态常量。比如:public static final RADIAS=180;目前我的做法是,使用c的预处理#define。比如,在头文件中:#define MIN_VELOCITY 10 #define LOOP_COUNT 100@interface AnimationView : UIView {在代码中使用:if (data.p
2015-05-11 01:55:16
468
转载 源码篇:Mantle
Mantle是一个用于简化Cocoa或Cocoa Touch程序中model层的第三方库。通常我们的应该中都会定义大量的model来表示各种数据结构,而这些model的初始化和编码解码都需要写大量的代码。而Mantle的优点在于能够大大地简化这些代码。Mantle源码中最主要的内容包括:MTLModel类:通常是作为我们的Model的基类,该类提供了一些默认的行为来处理对象的初
2015-05-11 01:41:11
2705
转载 Mantle 初步使用
最近接触到了Mantle这个东西,感觉很不错,在此与各位分享一下。前言在开发的过程中,我们常常会从网络获取数据,而数据通常又为JSON格式。 这时比较常见的做法是把JSON数据转为Model对象,这样我们可以从Model对象的属性读取数据。 但是常常会面临如下一些问题:每次都要用 -initWithDictionarty:(NSDictionary *)dict
2015-05-11 01:40:41
7507
转载 工具篇:Mantle
版本:1.5.3Mantle makes it easy to write a simple model layer for your Cocoa or Cocoa Touch application.由上面这句话可知,Mantle的目的是让我们能简化Cocoa和Cocoa Touch应用的model层。那先来看看通常我们是怎么处理model层的吧。解决的问题在我们
2015-05-11 01:39:41
965
转载 KVO的概述与使用
一,概述KVO,即:Key-Value Observing,它提供一种机制,当指定的对象的属性被修改后,则对象就会接受到通知。简单的说就是每次指定的被观察的对象的属性被修改后,KVO就会自动通知相应的观察者了。二,使用方法系统框架已经支持KVO,所以程序员在使用的时候非常简单。1. 注册,指定被观察者的属性,2. 实现回调方法3. 移除观察三
2015-05-11 00:21:26
539
转载 ARC之对象转型
自 Xcode4.2 开始导入ARC机制后,为了支持对象间的转型,Apple又增加了许多转型用的关键字。这一讲我们就来了解其用法,以及产生的理由。引子我们先来看一下ARC无效的时候,我们写id类型转void*类型的写法:12id obj = [[NSObject alloc] init];void *p = obj;
2015-05-10 23:45:39
411
转载 ARC总结
通过前面几篇文章的介绍,我想大家应该对ARC有了一个比较完整的理解。最后,我们来对ARC做一个总结,并把一些未涉及到的细节部分再深入讨论一下。内存管理基本原则内存管理的依循下面的基本原则自己生成的对象,那么既是其持有者 不是自己生成的对象,也可成为其持有者(一个对象可以被多个人持有) 如果不想持有对象的时候,必须释放其所有权 不能释放已不再持有所有权
2015-05-10 23:45:17
514
转载 ARC之Outlet与弱引用
使用weak property声明Outlet当我们使用 Interface Builder 生成Outlet对象的时候,一般都是作为 subview 来使用的。比如 UIViewController 的view。所以说Outlet的持有者就是superview对象,即有“父子”关系。由上一回 iPhone开发之深入浅出 (4) — ARC之循环参照 我们知道,当对象间有“父子”关系时
2015-05-10 23:44:33
405
转载 ARC之循环参照
概念当我们使用强参照(Strong reference)时,往往需要留意 循环参照 的问题。循环参照指的是两个对象被互相强参照,以至于任一对象都不能释放。一般情况下,当对象之间有“父子关系”时,强参照的情况发生的比较多。比如通讯薄对象AddrBook和每个通讯录Entry的关系如下。这种情况下,由于Entry对象被AddrBook强参照,所以不能释放。另
2015-05-10 23:43:37
625
转载 ARC之@property使用
上一回我们学到了一些ARC的基本概念,这一次我们来看看ARC对@property的使用规则有何影响。所有者属性我们先来看看与所有权有关系的属性,关键字间的对应关系。属性值关键字所有权strong__strong有weak__weak无unsafe_unreta
2015-05-10 23:41:29
437
转载 ARC之前世今生
前两节我们对 ARC(Automatic Reference Counting) 有了一个基本的理解,但是 ARC 是怎么产生的,为什么苹果要在其最新的 iOS/Mac OS X 上导入该框架? 如果不理解其背后的基本原理,只是死记硬背那些规则/方法,是毫无意义的。就像我们从小接受的填鸭式教育,基本上到后来都还给老师了。本节,我们先来看看 ARC 产生之前的 Objective-C 内存管
2015-05-10 23:40:58
435
转载 ARC是什么
ARC是什么ARC是iOS 5推出的新功能,全称叫 ARC(Automatic Reference Counting)。简单地说,就是代码中自动加入了retain/release,原先需要手动添加的用来处理内存管理的引用计数的代码可以自动地由编译器完成了。该机能在 iOS 5/ Mac OS X 10.7 开始导入,利用 Xcode4.2 可以使用该机能。简单地理解ARC,就是通过
2015-05-10 23:38:30
815
原创 Core Data学习
jasonblog:http://blog.youkuaiyun.com/jasonblog/article/category/2287065
2015-05-10 20:52:17
305
转载 Objective-C开发编码规范
Objective-C 编码规范,内容来自苹果、谷歌的文档翻译,自己的编码经验和对其它资料的总结。概要Objective-C 是一门面向对象的动态编程语言,主要用于编写 iOS 和 Mac 应用程序。关于 Objective-C 的编码规范,苹果和谷歌都已经有很好的总结:Apple Coding Guidelines for CocoaGoogle
2015-05-10 20:47:12
638
转载 GCD小结
0. Brief Introduction GCD,全称Grand Central Dispath,是苹果开发的一种支持并行操作的机制。它的主要部件是一个FIFO队列和一个线程池,前者用来添加任务,后者用来执行任务。 GCD中的FIFO队列称为dispatch queue,它可以保证先进来的任务先得到执行(但不保证一定先执行结束)。 通过与线程池的配
2015-05-10 20:41:00
599
转载 使用GCD
什么是GCDGrand Central Dispatch (GCD)是Apple开发的一个多核编程的解决方法。该方法在Mac OS X 10.6雪豹中首次推出,并随后被引入到了iOS4.0中。GCD是一个替代诸如NSThread, NSOperationQueue, NSInvocationOperation等技术的很高效和强大的技术。GCD和block的配合使用,可以方便地进行多
2015-05-10 19:30:00
1042
转载 iOS多线程GCD
Grand Central Dispatch (GCD)是Apple开发的一个多核编程的解决方法。dispatch queue分成以下三种:1)运行在主线程的Main queue,通过dispatch_get_main_queue获取。/*!* @function dispatch_get_main_queue** @abstract* Returns the defa
2015-05-10 19:27:19
39068
转载 MD5加密与网络数据安全
在做网络应用程序的时候, 时时刻刻要保证用户数据的安全, 因此要加密。MD5算法在国内用的很多. MD5算法的特点:*同样的数据加密结果是一样的.(32个字符)*不可逆的.(不能逆向解密)*可用于文件校验/指纹识别.MD5算法是公开的,iOS中已经包装好了MD5算法。可以将其写成字符串的分类:
2015-05-10 02:13:26
901
转载 网络操作与AFNetworking
众所周知,苹果搞的一套框架NSContention发送请求与接收请求的方式十分繁琐。操作起来很不方便。不仅要做区分各种请求设置各种不同的参数,而且还要经常在多线程里操作,同时还要对请求与返回的数据做各种序列化的操作,同时还要考虑请求数据的安全等一堆问题。一、早前的几个网络框架1、ASI框架: HTTP终结者.很牛, 但是有BUG, 已经停止更新.2、MKNe
2015-05-10 01:37:21
736
转载 iOS页面间传值的方式(Delegate/NSNotification/Block/NSUserDefault/单例)
iOS页面间传值的方式(NSUserDefault/Delegate/NSNotification/Block/单例)实现了以下iOS页面间传值:1.委托delegate方式;2.通知notification方式;3.block方式;4.UserDefault或者文件方式;5.单例模式方式;6.通过设置属性,实现页面间传值在iOS开发中,我们经常会遇到页面间跳转传值的问题,现归纳总结一下:
2015-05-10 00:11:42
808
转载 系统基础库
系统基础库Category/Util sstoolkit一套Category类型的库,附带很多自定义控件 功能不错~ BlocksKit将Block风格带入UIKit和Founcation cocoa-helpers一些Cocoa的扩展 2年前的工程 Co
2015-05-09 22:42:34
3425
转载 Masonry介绍与使用实践(快速上手Autolayout)
Masonry介绍与使用实践(快速上手Autolayout)前言1MagicNumber -> autoresizingMask -> autolayout以上是纯手写代码所经历的关于页面布局的三个时期在iphone1-iphone3gs时代 window的size固定为(320,480) 我们只需要简单计算一
2015-05-09 20:52:11
638
原创 日期格式化字符说明
常用模式yyyy-MM-dd HH:mm:ssyyyy/MM/dd HH:mm:ssyy/MM/dd HH:mm:ssyy-MM-dd HH:mm:ssyyyy-MM-ddyyyy/MM-dd还可以自己结合下面的字符格式字符进行自由组合。格式模式格式模式说明d月中的某一天。一位数的日期没有前导零。dd月中的某一天。一位
2015-05-09 20:28:53
641
转载 NSCopying
NSCopying协议大家在使用可变字典的时候可能已经注意到- (void)setObject:(id)anObject forKey:(id NSCopying>)aKey;后面的key要求是遵守NSCopying协议的一个对象接下来我们来查看协议中所包含的方法- copyWithZone:要求返回一个接受者的复制的新的实例示例接下来我们创建一个Person类,
2015-05-09 20:19:59
552
转载 id和instancetype区别
id、instancetypeidinstancetype总结id一个类的实例的指针,万能指针申明typedef struct objc_object *id;instancetype使用instancetype关键字作为方法的返回值代表返回当前类或者当前类的子类的实例.相应的方法有alloc,init以及便利构造方法在恰当的地方使用instancet
2015-05-09 20:11:50
2477
转载 Masonry简单使用
Masonry简单使用介绍安装使用居中显示视图设置视图并排多个视图间隔相同 介绍Masonry源码在其官网上也进行了很多的介绍,在下面会写出我自己的一些见解.如果使用过iOS中系统的NSLayoutConstraints已经知道非常麻烦如下代码就是系统的约束UIView *superview = self;UIView *view1 = [[UIVi
2015-05-09 19:58:54
57005
1
转载 Masonry布局框架的使用
Masonry是一个轻量级的布局框架 拥有自己的描述语法 采用更优雅的链式语法封装自动布局 简洁明了 并具有高可读性。比我们使用自动布局,繁琐的约束条件,好用多了。下面我们来学学masonry的使用方法。 首先我们要下载Masonry源码。源码地址如下:https://github.com/Masonry/Masonry将源码下载下来后,可以直接编译过使用的。
2015-05-09 19:21:12
14060
转载 关于AutoLayout的框架Masonry的使用
因为之前做过Android开发,Android的有种布局方式叫做RelativeLayout,使用起来非常灵活。2011年开始接触iOS的时候,发现这种基于坐标的绝对布局方式非常不灵活,所以还是按照Android的RelativeLayout的思想进行,控件的坐标均采用相对布局的关系,比如要实现这个布局: 使用相对布局思想如下(比较麻烦的地方是需要各种坐标相对
2015-05-09 00:18:53
1104
转载 KVC 和 KVO
Key-value coding (KVC) 和 key-value observing (KVO) 是两种能让我们驾驭 Objective-C 动态特性并简化代码的机制。在这篇文章里,我们将接触一些如何利用这些特性的例子。观察 model 对象的变化在 Cocoa 的模型-视图-控制器 (Model-view-controller)架构里,控制器负责让视图和模型同步。这一共有两步
2015-05-08 20:51:51
725
转载 知名应用背后的第三方开源项目
知名应用程序的设计和技术一直都是开发者需要学习的,同样这些应用所使用的开源框架也是不可忽视的一部分。此前《iOS第三方开源库的吐槽和备忘》中作者ibireme列举了国内多款知名应用所使用的开源框架,并对其中一些框架进行了分析,同样国外开发者@iOSCowboy也在博客中给我们列出了国外多款知名应用使用的开源框架。另外txx's blog中详细介绍了Facebook Paper使用的第三方库。
2015-05-07 18:49:06
429
转载 Objective C 中的nil,Nil,NULL和NSNull理解
ObjC 里面的几个空值符号经常会差点把我搞死,这些基础的东西一点要弄清楚才行,以提高码农的基本素质。nilnil 是 ObjC 对象的字面空值,对应 id 类型的对象,或者使用 @interface 声明的 ObjC 对象。例如:?NSString *someString = nil;NSURL *someURL
2015-05-07 16:36:00
534
Lively TableView
2012-06-18
Show More TableView
2012-06-18
Side Swipe TableView
2012-06-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人