设计模式

1、代理模式

delegate的作用:

当一个类的某些功能需要被别人来实现,但是既不明确是些什么功能,又不明确谁来实现这些功能的时候,委托模式就可以派上用场。说到底一切都是为了使类之间的耦合性更松散。好的代码应该对扩展开放,对修改关闭。

自定义一个delegate:

@protocol DelegateTestDelegate《Object》

@optional则是可做或不做
@required 就是必须去办的
-(void)test;
@end

@interface DelegateTest : NSObject
{
id《DelegateTestDelegate》 delegate;
}
@property (nonatomic,assign) id《DelegateTestDelegate》 delegate;

-(void)testMethod;

@end

-(void)testMethod:(id )sender
{
if ([self.delegate respondsToSelector:@selector(test)])
{
[self.delegate test];
}

}

关于delegate protocol 网上有一个例子讲的非常形象:

我上班的工作主要内容包括 (1)写代码(2)写文档(3)测试程序(4)接电话(5)会见客户

(1)(2)我自己全权负责,但是后面(3)(4)(5)我不想或者不方便自己做,所以我想找个助手(delegate)帮我做这些事,于是我定了一个招聘要求(Protocol),里写明我的助手需要会做(3)(4)(5)这三件事。很快,我招到一个助手。

    即:我.delegate = 助手;

于是以后每当我遇到需要测试程序或者接电话的活,我就把他转交给助手(delegate)去处理,助手处理完后如果有处理结果(返回值)助手会告诉我,也许我会拿来用。如果不需要或者没有结果,我就接着做下面的事。

http://blog.csdn.net/huifeidexin_1/article/details/7567731

(二)观察者模式

1、通知:
有些同学可能会发现,在某个ViewController中,没有移除通知好像也没有发生过crash。是的,这是因为在viewController被销毁的时候,它帮我们调用了remove方法。想去证明的同学可以新建一个分类,覆盖系统的removeObserver方法,会发现在controller销毁的时候调用了我们重写的remove方法。

本地通知注意:

在使用通知之前必须注册通知类型,如果用户不允许应用程序发送通知,则以后就无法发送通知,除非用户手动到iOS设置中打开通知。

本地通知是有操作系统统一调度的,只有在应用退出到后台或者关闭才能收到通知。(注意:这一点对于后面的推送通知也是完全适用的。 )

通知的声音是由iOS系统播放的,格式必须是Linear PCM、MA4(IMA/ADPCM)、μLaw、aLaw中的一种,并且播放时间必须在30s内,否则将被系统声音替换,同时自定义声音文件必须放到main boundle中。

本地通知的数量是有限制的,最近的本地通知最多只能有64个,超过这个数量将被系统忽略。

如果想要移除本地通知可以调用UIApplication的cancelLocalNotification:或cancelAllLocalNotifications移除指定通知或所有通知。

http://www.cnblogs.com/QianChia/p/5771055.html#autoid-0-0-0

单例模式:

http://www.cnblogs.com/jierism/p/6119460.html

http://www.cocoachina.com/ios/20160613/16661.html

http://www.cnblogs.com/iQingYang/p/6702948.html

http://www.jianshu.com/p/e535c7575d72

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值