51CTO博客开发
设计模式主要分三个类型:创建型、结构型和行为型。 其中创建型有: 一、Singleton,单例模式:保证一个类只有一个实例,并提供一个访问它的全局访问点 二、Abstract Factory,抽象工厂:提供一个创建一系列相关或相互依赖对象的接口,而无须指定它
命令模式这个设计模式将对象封装成了一个请求获取操作,这个封装请求比一个原始的请求更加的灵活,且可以在对象之间传递,稍后存储,动态修改获取放到一个队 列之中。苹果公司是用Target-action机制和Invocation实现的,你可以在苹果的官方文档中去知道更多的关于Target- Action,但是Invocation使用包含一个Target对象的NSInvocation类,一个方法选择器和一些
备忘录模式备忘录设计模式将一个对象的内部状态进行捕捉并外部化,换句话说就是你将你的东西保存在某个地方。以后这个外部话的转台不需要借助封装就可以被回复,也就是私有的数据还是私有的。如何使用备忘录设计模式接下来将下面两个方法添加在ViewController.m中- (void)saveCurrentState { &n
观察者模式在观察者模式中,一个对象将会通知其他对象的任何状态的改变。这些相关的对象并不需要去知道另一个对象-这样就造成了一个非耦合的设计。这个模式大部分用在去通知一个感兴趣的对象它的一个属性已经发生了改变。一般的实现需要一个对象注册成为它感兴趣的状态的观察者,当这个状态改变了,所有的观察者对象都会接收到通知。苹果的Push Notification服务就是对这个最好的例子。如果你想要坚持MVC设计
适配器设计模式(The Adapter Pattern)适配器模式让不同的类之间的不兼容的接口可以一起工作。它将自己包装成一个对象,然后暴露一个标准的接口去让外界和这个对象去交互。如果你对适配器模式熟悉,那么你会注意到苹果用一个稍微不同的方法去实现它-苹果使用协议去做这个工作,你也许会熟悉像UITableViewDelegate,UIScrollViewDelegate,NSCoding,NSCo
装饰设计模式装饰设计模式动态的添加一些行为和任务到一个对象中且不需要去修改它的代码。当然你也可以选择用继承的方式-通过包装成另一个对象去改变它的行为。在objective-c中由两个非常常用的实现方式:分类和代理。(Category, Delegate)Category分类是一种非常有用的机制,它允许你去添加一些方法到已经存在的类中且不用去继承它。这些新方法会在编译的时候添加上去,且可以像这个被扩
外观设计模式外观设计模式向复杂的子系统提供了简单的接口,相比将一系列的类和他们的接口暴露给用户,你只需要暴露一些简单的未定义的API。接下来的图片解释了这一概念。使用这些API接口的人完全没有意识到你这下面隐藏的复杂性,在有一系列类,特别是他们使用很复杂或者难以理解的时候,这个模式是非常好的。外观设计模式使用从接口层面去使用,在实现技术上隐藏而将代码解藕了。它也减少了你外部的代码对于内部子系统代码
单例模式单例模式确保为一个确定的类只有一个实例存在,而且有一个全局的访问指针只想它,他经常使用延时加载去在第一次使用的时候创建一个简单的实例。 小贴士:苹果使用这个方法很频繁。比如:[NSUserDefaults standarUserDefaults], [UIApplica
MVC -设计模式之王Model View Controller 是Cocoa的基石之一,且毫无疑问的是所有设计模式中最常用的设计模式,它根据你的应用中的一般角色去分类对象,鼓励在完全分离的模式下分角色。 Model:这个对象hold住你的应用数据,且定义如何去操作它,例如本例中
Ios 设计模式,你可能听说过,但是你真正知道这是什么意思么?大部分的开发者大概都同意设计模式很重要,但是关于这一部分却没有很多的文章去介绍它,我们开发者很多时候写代码的时候也并不重视设计模式.设计模式是在软件设计上去解决普通问题的可重用的方法.他们是是帮助你让所写的代码更加容易理解和提高可重用性的模板.它们还可以帮你创建松散耦合的代码是你能不费很大功夫就可以改变或者替代你的代码中的一部分.如果你
storyboard 上创建多个viewcontroller 在miancontroller 上添加viewcontroller的跟视图- (void)viewDidLoad{ [super viewDidLoad]; self.navigationController.navigationBar.translucent =
NetWorking.h#import <Foundation/Foundation.h>typedef void (^FinishBlock)(id responseObject);@interface NetWorking : NSObject@property (nonatomic ,strong) FinishBlock finishBlock;+(void)GetDataWi
1.autorelease嵌套,系统怎么处理的2.arc原理处理原理3.mrc或者arc怎么破循环应用4.线程安全5.nsopearation可不可以停止6.http状态码,自己写http框架,缓存,异步,并发高性能的解决方案7.断点续传方案8.ui、动画,动画优化方案,UITableViewCell优化方案9.本地数据库海量数据如何提高查询效率和存储效率10.索引的缺点
CATransition *transition = [CATransition animation]; transition.duration = 1.0f; transition.timingFunction = [CAMediaTimingFunction 
navigation 同理:- (UIViewController*)viewController { for (UIView* next = [self superview]; next; next = next.superview) { UIResponder* nextRe
11、面向对象的三大特征,并作简单的介绍。 面向对象的三个基本特征是:封装、继承、多态。封装是面向对象的特征之一,是对象和类概念的主要特性。 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的 数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。隐藏对象的属性和实现细节,仅对外公开接口,提高代 码安全性,封转程度越高,独立性越强,使用越方便。继
6、用obj-c写一个冒泡排序-(void)mySort:(NSMutableArray *)mutArray { id tmpObj = nil; unsigned long flag = mutArray.count-1;//flag :最大脚标 while (flag >&nb
1. 回答person的retainCount值,并解释为什么Person * per = [[Person alloc] init]; 此时person 的retainCount的值是1self.person = per;在self.person 时,如果是assign,person的 retainCount的值不变,仍为1 若是:retain person的ret
capptivate.cofacebook/pop 动画
http://onevcat.com/破船之家http://beyondvincent.com/NSHipsterhttp://nshipster.cn/Limboy 无网不剩http://limboy.me唐巧的技术博客http://blog.devtang.com/Lex iOS noteshttp://ios.lextang.com/念茜的博客http://nianxi.net/Xcode
Extensible Messaging and Present Protocol可扩展通讯和表示协议功能:XMPP使用TCP传送XML流 , 做即时通讯 官方网站:xmpp.org服务器环境:ejabberd 和Openfireejabberd:安装简单Openfire:需要PHP环境(LAMP) , 集成了客户端(Spark)在macos上有集成好的PHP环境 ,但是需要配置 , 没有图形界面
插件之王XCode Plugins Package Managerhttp://alcatraz.io/可以下载所有的APIDashApp 图标制作DevBoxJSON解析VisualJSONXML解析VisualXML设计神器PaintCode那些不能错过的Xcode插件http://www.cocoachina.com/industry/20130918/7022.htmlhttp://www
svn的使用流程1.在code.taobao.org创建一个项目,并把小组成员邀请进来2.在Cornerstone中添加站点3.由一名小组成员上传项目框架4.小组其他成员依次checkout,编译后在commitSVN原则1.不能同时修改同一个版本的文件2.对文件做添加,删除,覆盖操作前,需要先通知其他小组成员,如果其他小组成员对文件做了操作,需要让他先commit,然后你需要update,在对文
Certificates (证书) 证书分为: 开发者证书 和发布(产品)证书 .开发证书只能做真机测试 , 发布证书只能做产品发布: 是电脑是否加入开发者计划的凭证Identifiers (标识符) : 应用的唯一标识符 (App ID)App ID 对应Xcode中的Boundle ID App ID 分为明确App ID 和通配App ID 明确的ID 可以发布到AppStore
Entity:实体 , 其实就是Sqlite中的表Attributes:属性 , 就是Sqlite中的字段Relationship:关系:就是Sqlite中的表与表之间的关系Fetched properties:查询属性,就是sql语句..Sqlite 数据库.sqlite-shm : 数据库日志.Sqlite-wal:数据库索引共享内存文件 .
一、Singleton,单例模式 二、Abstract Factory,抽象工厂 三、Factory Method 工厂方法 四、Builder,建造模式 五、Prototype,原型模式 六、
#define kMIN(A,B) A < B ? A : B 不准确#define kMIN(A,B) ({__typeof__(A) _a = (A); __typeof__(B) _b = (B); _a < _b ? _a : _b;}) int j
developer.apple.com苹果开发者中心
Copyright © 2005-2023 51CTO.COM 版权所有 京ICP证060544号