![](http://images0.cnblogs.com/blog/215975/201305/01200012-9020ac90a70149688541507302790c6f.png)
![](http://images0.cnblogs.com/blog/215975/201305/01200102-7198ac030f374b60a2dccc532af5db2b.png)
![](http://images0.cnblogs.com/blog/215975/201305/01200124-2b48860f19dd4767b0379492b44fe483.png)
![](http://images0.cnblogs.com/blog/215975/201305/01200306-f8b9702268d047d7a9eaf3f1c99ac23f.png)
![](http://images0.cnblogs.com/blog/215975/201305/01200338-7c291ad4654d40fd98b7ae82740b9ee5.png)
![](http://images0.cnblogs.com/blog/215975/201305/01200518-6252a13fb5cf4dc79a3affe5a9a25650.png)
![](http://images0.cnblogs.com/blog/215975/201305/01200546-73cbfdc0a2ff40389a290c9880958da7.png)
![](http://images0.cnblogs.com/blog/215975/201305/01200226-79510856db11457983669fa666f43652.png)
// // main.m // nsvalue // // Created by ganchaobo on 13-5-1. // Copyright (c) 2013年 ganchaobo. All rights reserved. // #import <Foundation/Foundation.h> #import "Student.h" //NsNumber 用法是把基本类型装换oc对象(不包含结构体包装) void CreateNsnuber(){ //通过字符串类名子得到 class NSString *classname=@"Student"; Class stu= NSClassFromString(classname);//通过字符串类名得到类 id tu=[[[stu alloc] init] autorelease]; NSString *methodname=@"Print:"; SEL method=NSSelectorFromString(methodname);//通过过字符串得到方法用@selector if([tu respondsToSelector:method]){//responedToSelector 判断类种是否这个方法。 // NSNumber *number=[NSNumber numberWithInt:1]; NSNumber *number=[NSNumber numberWithChar:'A']; [tu performSelector:method withObject:number]; NSLog(@"yes"); } else{ NSLog(@"NO"); } } //Nsvalue用法 :任何基本类包装,通用方法 void CreateNsvalue(){ float a=10; char * c=@encode(float); //第一个参数是要包装c语言种基本类型 NSValue *value=[NSValue valueWithBytes:&a objCType:c ]; float t; NSLog(@"%@",value); [value getValue:&t];//包装后的nsvalue要获取包装的值用getvalue const char * t1=[value objCType];//返回包装类型的字符串 (int 返回 i float类型--》f) NSLog(@"%f--->%s",t,t1); ///////////////////////////// NSRange rang=NSMakeRange(10, 30); char *r=@encode(NSRange); NSValue *value1=[NSValue valueWithBytes:&rang objCType:r]; NSLog(@"%@",value1); NSRange RR; [value1 getValue:&RR]; const char *rr=[value1 objCType]; NSLog(@"-->%s",rr); } //Nsvalue用法 :任何基本类包装,简单的方法 void CreateNsvalue1(){ NSValue *value=[NSValue valueWithRange:NSMakeRange(10, 20)]; NSRange R=[value rangeValue]; NSLog(@"%zi--%zi", R.length,R.location); NSValue *value1=[NSValue valueWithPoint:NSMakePoint(10, 20)]; NSPoint point=[value1 pointValue]; NSLog(@"%f--%f", point.x,point.y); } //NSData的用法 是用秒来计算 void CreateNSDate(){ NSDate *date=[NSDate date];//返回当前世界 NSDate *date1=[NSDate dateWithTimeIntervalSinceNow:20];//获取当前时间的基础上加20秒钟 NSDate *date2=[NSDate dateWithTimeIntervalSince1970:50];// 在1970-1-1 00;00:00上基础上加50秒 NSDate *date3=[NSDate distantFuture];//获取未来随机时间 NSDate *date4=[NSDate distantPast];//获取过去随机世界 [date timeIntervalSince1970];//从1970之后走过的秒 NSLog(@"%@",date); NSLog(@"%@",date1); NSLog(@"%@",date2); NSLog(@"%@",date3); NSLog(@"%@",date4); double sec= [date timeIntervalSince1970];//从1970之后走过的秒 NSLog(@"Seconde =%f",sec); } void datecompate(){ NSDate *date=[NSDate date]; NSDate *date1=[NSDate dateWithTimeInterval:10 sinceDate:date]; NSLog(@"%@",date); NSLog(@"%@",date1); NSLog(@"较小时间%@",[date earlierDate:date1]);//两个时间想比较,返回较小的时间 NSLog(@"较大时间%@",[date laterDate:date1]);//两个时间比较,放回较大de时间 //时间排序 NSLog(@"%zi",[date1 compare:date]); NSLog(@"%zi",[date compare:date1]); } void DateFormate(){ NSDateFormatter *formatter=[[[NSDateFormatter alloc] init] autorelease]; formatter.dateFormat=@"yyyy-MM-dd HH:mm:ss"; //字符串转换为时间,有时差 // NSDate *dd=[formatter dateFromString:@"2013-05-01 19:51:12"]; // NSLog(@"%@",dd); NSString *str=[formatter stringFromDate:[NSDate date]]; NSLog(@"%@",str); } int main(int argc, const char * argv[]) { @autoreleasepool { DateFormate(); } return 0; }