iOS中NSNumber,NSValue,NSDate和反射
2013-09-19 22:23
399 查看
// // main.m // NSNumberTest // // Created by Unisk on 13-9-19. // Copyright (c) 2013年 Test. All rights reserved. // #import <Foundation/Foundation.h> #import "Student.h" #import "Person.h" #pragma mark NSNumber相关 void nsnumerTest(){ NSNumber *number=[NSNumber numberWithInt:11]; NSMutableArray *array=[NSMutableArray array]; [array addObject:number]; // NSLog(@"%@",array); // NSNumber *number1=[array lastObject]; NSNumber *number1=array[0]; // NSLog(@"%@",number1);s int num=[number1 intValue]; NSLog(@"%i",num); } #pragma mark NSValue 用法 void nsvaule(){ CGPoint point=CGPointMake(11, 12); NSValue *value=[NSValue valueWithPoint:point]; NSMutableArray *array=[NSMutableArray array]; [array addObject:value]; NSValue *nsVault=[array lastObject]; CGPoint point1=[nsVault pointValue]; BOOL result= CGPointEqualToPoint(point, point1); NSLog(@"%i",result); } typedef struct { int year; int month; int day; } Date; #pragma mark 结构体相关 void value(){ Date date={2013,9,18}; // 根据结构体类型生成对应的类型描述字符串 char *type=@encode(Date); NSValue *value=[NSValue value:&date withObjCType:type]; Date date1; // 取出包装好的结构体 [value getValue:&date1]; NSLog(@"year=%i,month=%i,day=%i",date1.year,date1.month,date1.day); } #pragma mark NSDate void nsDate(){ NSDate *date=[NSDate date]; // NSLog(@"%@",date); // [NSDate distantFuture]; 将来的某个时间 // [NSDate distantPast]; 过去的某个时间 // 返回1970-1-1 到现在的秒数 // NSTimeInterval interval=[date timeIntervalSince1970]; // NSLog(@"%.0f",interval); // NSDate *date1=[NSDate date]; // [date earlierDate:date1]; // [date laterDate:date1]; NSDateFormatter *formater=[[[NSDateFormatter alloc] init]autorelease]; formater.dateFormat=@"yyyy-MM-dd hh:mm:ss"; NSString *string=[formater stringFromDate:date]; NSLog(@"%@",string); } #pragma mark 相关 void classTest(){ Student *stu=[[[Student alloc] init]autorelease]; //isKindOfClass 判断对象是否属于某个类,或者子类 if ([stu isKindOfClass:[Person class]]) { NSLog(@"是的"); } //isMemberOfClass 判断某个类是否属于某个类,不包含子类 if ([stu isMemberOfClass:[Student class]]) { NSLog(@"不是"); } //直接调用 // [stu test]; //间接调用 [stu performSelector:@selector(test)]; } #pragma mark 反射相关 void reflect(){ NSString *str=@"Person"; //将字符串转换为class类 Class class=NSClassFromString(str); //实例化对象 Person *person=[[[class alloc] init] autorelease]; NSLog(@"%@",person); //将类转换为string // NSString *str=NSStringFromClass([Person class]); // NSLog(@"%@",str); //方法的反射 NSString *method=@"test"; // 根据字符串得到方法 SEL selector=NSSelectorFromString(method); [person performSelector:selector]; } int main(int argc, const char * argv[]) { @autoreleasepool { reflect(); } return 0; }
#import <Foundation/Foundation.h> @interface Person : NSObject -(void)test; @end
#import "Person.h" @implementation Person -(void)test{ NSLog(@"test 被调用了"); } @end
#import "Person.h" @interface Student : Person -(void)test:(NSString *) string; @end
#import "Student.h" @implementation Student -(void)test:(NSString *)string{ NSLog(@"test %@被调用了",string); } @end
相关文章推荐
- iOS--NSNumber,NSDate,NSValue
- iOS中NSNumber,NSValue链接 时间 NSDate
- iOS Foundation框架 利用NSNumber和NSValue将非OC对象类型数据存放到集合
- 黑马程序员_Foundation_NSSet,NSDictionary,NSValue,NSDate,NSNumber
- 黑马程序员--ios Foundation中几个类NSNumber,NSValue,NSSet
- iOS Foundation框架 -3.利用NSNumber和NSValue将非OC对象类型数据存放到集合
- 黑马程序员--OC自学笔记---10Foundation、NSFileManager、iOS沙盒、OC结构体、NSNumber、NSValue、NSDate、copy、单例模式
- NSMutableString NSNumber NSValue NSDate NSArray
- NSNumber,NSValue,NSDate的使用
- 黑马程序员—— Foundation框架NSArray、NSSet、NSDictionary、NSNumber、NSDate、NSValue
- OC--NSValue、 NSNumber、NSNull、NSDate的使用
- ios-基础之【9】-NSNumber,NSDate,NSExcetion
- OC类 之 NSData NSDate NSSet NSNumber NSValue
- iOS Foundation框架 利用NSNumber和NSValue将非OC对象类型数据存放到集合
- Foundation框架下的常用类(NSNumber, NSValue, NSDate,NSDateFormatter)
- NSDate,NSNumber,NSValue
- oc77--结构体,NSNumber,NSValue,NSDate,NSCalendar
- iOS Foundation框架 -3.利用NSNumber和NSValue将非OC对象类型数据存放到集合
- Objective-C(十、NSRange,point,size,rect,NSNumber,NSValue,NSNull)——iOS开发基础
- 黑马程序员 OC语言 - 9 NSDictionary、NSMutableDictionary、NSNumber、NSDate、NSValue