NSDate和@protocol

来源:互联网 发布:ios版cf手游刷枪软件 编辑:程序博客网 时间:2024/04/28 09:40

可以利用NSTimer当作游戏时钟。

NSTimer*  _gameTimer = [NSTimer scheduledTimerWithTimeInterval:多久触发一次(NSTimeInterval)target:(id)selector:(sel) userInfo:(id)repeate:(BOOL)];

NSTimer里的fireDate是记录动作触发的时间

timerIntervalSinceDate:(NSDate);记录时间的差值


上级让下级做事直接通过set/get的类似方法,而下级想让上级做事,就必须要通过协议和委托

协议的定义是写在下级里面,协议的遵从是上级遵从,协议的实现也是上级去设置。就好比说下级设置了文本想显示到上级视图上去,这时候就得用协议与委托


步骤:

1、先在下级的.h文件中定义协议         定义协议部分

@protocol  类名delegate<...>

- 方法名 //此处是声明

@end

2、在下级的接口中定义代理     //内部定义部分

@property(weak,nonatomic) id<类名delegate>  delegate;

在.m文件中 委托代理执行方法   //传递部分

[_delegate 方法名:参数];

3、在上级的.h文件中,接口要遵从协议,记得#import

实现代理方法  //此处是实现

注意:内部定义和传递是重要的部分

还有一个要求设置成委托方的代理

例子:

在viewcontroller中有个prepareForSegue:segue sender

所有在storyboard中的连线在推出新的视图控制器(之前)都会调用这个方法

segue就是视图传递的那根线

可以通过segue的一个属性获取到目标视图控制器

[segue destinationViewController] 在此视图控制器里将委托设置成self(也就是上级)  setDelegate:self













0 0
原创粉丝点击