ObjectC----NSDate和Extension以及代理协议的用法

//  Created By 郭仔   2015年04月03日20:09:43

NSDate * nowDate = [NSDate date];

NSLog(@"%@",nowDate);

//
距离现在3600*24秒的时间日期,单位秒

NSDate * tomorrow = [NSDate dateWithTimeIntervalSinceNow:3600*24];

NSLog(@"%@",tomorrow);

NSDate * date = [NSDate dateWithTimeIntervalSince1970:365*24*3600];

NSLog(@"%@",date);

//
计算两个日期之间的时间差,单位是秒

NSTimeInterval interval = [nowDate timeIntervalSinceDate:tomorrow];

NSLog(@"%f",interval);

NSTimeInterval interval2 = [nowDate timeIntervalSince1970];

NSLog(@"%f",interval2);

//
创建当前时间和一个固定时间

NSDate *now = [NSDate date];

NSDate *past = [NSDate dateWithTimeIntervalSinceNow:-50];

//
计算两个时间的时间差

NSTimeInterval interval3 =[now timeIntervalSinceDate:past];

if (interval3 <=60) {

NSLog(@"ganggang");

}

else if(interval3>60 && interval3<=3600){

NSLog(@"xxfenzhong");

}

else{

NSLog(@"xx");

}

// ============================================

// NSDateFormatter
日期和字符串之间的转化

NSDateFormatter * formatter = [[NSDateFormatter alloc] init];

//
必须设置日期格式

[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];//
也可@"yyyy年MM月dd日"

//
将日期转化成字符串,这样打印的时候才是自己位置时区的时间

NSDate * nowDate2 = [NSDate date];

NSString *str = [formatter stringFromDate:nowDate2];

NSLog(@"%@",str);

//将字符串转化成日期

NSDate * newDate = [formatter dateFromString:@"2000-1-1 10:12:23"];

NSLog(@"%@",newDate);

//
练习

NSDateFormatter *formatter5 = [[NSDateFormatter alloc] init];

// [formatter5 setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

[formatter5 setDateFormat:@"yyyy年MM月dd日
HH:mm:ss"];

NSDate * newDate4 = [formatter5 dateFromString:@"2014年05月01日
10:23:18"];

NSString * newDate5 = [formatter5 stringFromDate:newDate4];

NSLog(@"%@",newDate5);

// ===============================================================

//
(分类)类目

/*

1.类目主要用于在不知道源码的情况下扩展类的功能;

2.类目只能为类添加方法,不能添加实例变量;

*/

// ===============================================================

// Extension:管理私有方法

//===============================================================

/*代理模式步骤:

1,定义协议 
(BaoMuProtocol)

2,遵循协议的类  (Nurse)

3.定义需要代理的类  (Mother)

4.建立关系   (Mother中定义一个代理类型的成员变量)

*/

BaoMuProtocol:

@required

- (void)takeCareOfBaby;

@optional

- (void)cook;

- (void)doHouseWork;

@end

===================

Nurse.h

#import "BaoMuProtocol.h"

@interface Nurse : NSObject<BaoMuProtocol>

@end

Nurse.m

- (void)takeCareOfBaby

{

NSLog(@"Nurse--takeCareOfBaby");

}

- (void)cook

{

NSLog(@"Nurse--cook");

}

- (void)doHouseWork

{

NSLog(@"Nurse--doHouseWork");

}

=================================

Mother.h

#import "BaoMuProtocol.h"

@interface Mother : NSObject

{

id<BaoMuProtocol> _delegate;

}

- (void)setDelegate:(id<BaoMuProtocol>)delegate;

- (id<BaoMuProtocol>)delegate;

- (void)work;

@end

Mother.m

(void)setDelegate:(id<BaoMuProtocol>)delegate

{

_delegate = delegate;

}

- (id<BaoMuProtocol>)delegate

{

return _delegate;

}

- (void)work

{

NSLog(@"Mother--Work");

[_delegate takeCareOfBaby];

}

=============================

main中调用

Mother * mother = [[Mother alloc] init];

Nurse * nurse = [[Nurse alloc] init];

[mother setDelegate:nurse];

[mother work];

=============================

时间: 2024-11-08 20:17:44

ObjectC----NSDate和Extension以及代理协议的用法的相关文章

object-C NSDate

NSDate常用方法 NSDate *date=[NSDate date];//获取当前的时间 NSLog(@"%@",date); NSDate *date1=[NSDate dateWithTimeIntervalSinceNow:-60];// 返回以当前时间为基准,然后过了60秒的时间 NSLog(@"----%@",date1); NSDate *date2=[NSDate dateWithTimeIntervalSince1970:1000];//从19

Extension

Extension 可以认为是一种匿名的 Category, Extension 与 Category 有如下几点显著的区别: 1.使用 Extension 必须有原有类的源码 2.Extension 声明的方法必须在类的主 @implementation 区间内实现,可以避免使用有名 Category 带来的多个不必要的 implementation 段. 3.Extension 可以在类中添加新的属性和实例变量,Category 不可以(注:在 Category 中实际上可以通过运行时添加新

NSDate 总结日期操作

IOS Object-c NSDate总结日期操作 //NSDate //1, 创建NSDate对象 NSDate *nowDate = [NSDate date]; NSLog(@"%@",nowDate); //2, 创建明天现在的时间 NSDate *tomorrow = [NSDate dateWithTimeIntervalSinceNow:24*3600]; NSLog(@"%@",tomorrow); //3, 创建昨天现在的时间 NSDate *ye

IOS的各种控件(转载,防止遗忘)

UITextView控件的详细讲解 感觉写的相当不错,而且很全就直接转载了 1.创建并初始化 创建UITextView的文件,并在.h文件中写入如下代码: #import <UIKit/UIKit.h> @interface TextViewController : UIViewController <UITextViewDelegate> { UITextView *textView; } @property (nonatomic, retain) UITextView *tex

列表下拉/上拉刷新: (一)EGORefreshTableHeaderView使用、定义EGORefreshTableFooterView

现在似乎只要是个列表,都要有下拉刷新这一项,否则就跟不上潮流了,呵呵.下拉刷新应该很多人都采用了EGORefreshTableHeaderView,具体的UI效果当然会根据自己产品的设计,再进行修改.应用中如果要展示大量数据列表,肯定不会一次都加载进来的,常规的方法都是从服务器翻页请求,每次请求n条,用户选择加载更多的时候再请求n条.根据这个需求,我们可以仿照EGORefreshTableHeaderView再实现一个footerView加在列表下面,支持上拉列表松开加载下一页数据. 效果如下

EasyUI 数据网格行过滤(DataGrid Filter Row)

http://www.jeasyui.net/extension/192.html 原版 用法 包含 'datagrid-filter.js' 文件 <script type="text/javascript" src="datagrid-filter.js"></script> 启用过滤(Filter) var dg = $('#dg'); dg.datagrid(); // create datagrid dg.datagrid('ena

IOS中NSdate用法

// date方法返回的就是当前时间(now) 02. NSDate *date = [NSDate date]; 03.// now: 11:12:40 04.// date: 11:12:50 05. date = [NSDate dateWithTimeIntervalSinceNow:10];//返回当前时间10秒后的时间 06. // 从1970-1-1 00:00:00开始 07. date = [NSDate dateWithTimeIntervalSince1970:10];//

第七讲.NSDate,category(分类),extension(延展),protocol(协议),delegate(代理)

一.掌握NSDate和NSDateFormatter的使用 NSDate是Cocoa中?用于处理日期和时间的基础类,封装了某一给定的时刻(含日期,时间,时区). 了解NSDate的创建,如何计算当前时间,时间间隔,以及时间日期与字符之间的互转. 1>.NSDate创建,当地时间计算,时间按间隔计算,时间与字符之间的互转 练习题1:计算当前时间与一个固定时间按的时间差 练习二:字符串转化为日期对象 二.掌握Category的定义和使用(只能为类扩展类方法或实例方法) 1.主要作用是为:没有源代码的

obj-c9[[NSDate,{Category分类,Extension,管理&#39;私有”方法,Protocol (协议)}]

#import <Foundation/Foundation.h>//#import "Person.h"#import "NSString+SayHiMessage.h"#import "NSMutableArray+ChangeArray.h" #import "NSString+ExchangeChineseToEnglish.h" #import "NSString+EmailValidation