//
// 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;
}