Objective-C 学习笔记 07 - 回调和协议

本文介绍了Objective-C中实现回调的三种方式:Target-action、Helper objects(如代理和数据源)以及Notification。详细讨论了NSTimer的用法,并通过NSURLConnection的异步请求解释了回调的重要性。此外,还讲述了系统时区变化时的通知机制以及对象释放的注意事项。最后,讨论了协议在定义UITableView数据源中的应用。
摘要由CSDN通过智能技术生成

使用Objective-C通常有三种方式实现回调:

Target-action:当某事件发生时,向指定的对象发送某个特定的消息。只做一件事时使用。

Helper objects:当某事件发生时,向遵循相应协议的辅助对象发送消息。代理和数据源是常见的辅助对象。功能较复杂是使用。

Notification:某个对象正在等待某些特定的通告,当其中的某个通告出现时,向指定的对象发送特定的消息。当某事件发生时,相关的对象会向通告中心发布通告,然后再有通告中心将通告转发给正在等待该通告的对象。要触发多个回调对象时使用。

Target-action

NSTimer使用就是这个机制。创建该对象时,要设定延时,目标和动作。在指定的延时时间后,该对象会向设定的目标发送指定的消息。

新建工程Callbacks,添加类Logger

#import <Foundation/Foundation.h>

@interface Logger : NSObject
- (void)sayOuch:(NSTimer *)t;
@end

#import "Logger.h"

@implementation Logger

- (void)sayOuch:(NSTimer *)t
{
    NSLog(@"Ouch!");
}

@end
创建logger实例和NSTimer实例,指定当timer超时是,向logger发送sayOuch:消
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值