NSObject和反射2】的更多相关文章

NSObject和反射2. commend +R  run id stu=[Student student]; // –>   Student *stu=[Student student]; :也是方法名的一部分 主要是反射:reflect 根据字符串来实例化一个对象 //#pragma mark reflect according to class name void reflect(){ NSString *str=@"Person"; Class class=NSClass…
如何NSObject和反射 NSObject 常用方法 如何判断 某个对象是否属于某个类或子类 -(BOOL)isKindOfClass:(Class)aClass 判断是否为aClass的实例(不包括aClass的子类) -(BOOl)isMemberOfClass:(Class)aClass 判断是否实现了aProtocol协议 -(BOOL)conformToProtocol:(Protocol)aProtocol 判断这个类的对象是否拥有参数提供的方法 +(BOOL)instancesR…
1.判断某个对象是否属于一个类 Student *stu = [[[Student alloc] init] autorelease]; BOOL result= [stu isKindOfClass:[Person class]]; NSLog(@"%i", result); //判断对象是否属于某个类,不包括子类 NSLog(@"%i",[stu isMemberOfClass:[Student class]]); NSLog(@"%i",[…
NSObject常用方法 - (BOOL)isKindOfClass:(Class)aClass //判断是否为aClass或者aClass的子类的实例,aClass可以通过[类名 class]获取 - (BOOL)isMemberOfClass:(Class)aClass //判断是否为aClass的实例(不包括aClass的子类) - (BOOL)conformsToProtocol:(Protocol)aProtocol //判断对象是否实现了aProtocol协议 + (BOOL)ins…
// 类的反射    NSString *str = @"Person";    Class class = NSClassFromString(str);        Person *person = [[class alloc] init];    NSLog(@"%@", person); // Class变成字符串    NSString *name =  NSStringFromClass([Person class]);        // 方法的反射…
// // PJReflect.m // 新浪微博 // // Created by pj on 14-8-8. // Copyright (c) 2014年 pj. All rights reserved. // #import "PJReflect.h" #import "PJFiled.h" #import <objc/runtime.h> #import <Foundation/NSObjCRuntime.h> @implementa…
objective-c中提供类似JAVA的反射特性,给出基本例子如下: #import <Foundation/Foundation.h> @interface ClassA : NSObject{ int _id1; int _id2; int _id3; } @property int _id1; @property int _id2; @property int _id3; -(void) setId1:(int)id1 andId2:(int)id2 andId3:(int)id3;…
函数 func x(a:Int, b:Int)  {}   func x(a:Int, b:Int) -> Void {}  func x(a:Int, b:Int) ->(Int,Int) {} 外部参数名 func x(width a:Int,height b:Int) -> Int {}  func x(#a:Int,#b:Int) -> Int {} //一般情况下可以不指定外部参数名,直接调用函数,但使用外部参数名,可以显著提高代码可读性: func helloWithN…
一.反射 反射,一般表现在字符串和Class转换,字符串和内部方法转换,字符串和属性的转换(取值和赋值). 二.Objective-C中的反射 OC的反射是基于其Runtime实现的. 以执行某个函数为例,我们知道在OC中执行[Stu doSomething]函数,实质上是发送了一个消息给Runtime,然后Runtime再根据这个Class的字符串名和这个函数的字符串名,去匹配真正相应的方法的地址,然后再执行的.所以中间我们可以利用字符串去动态的检测,甚至动态的修改(之前说到的Method S…
http://www.cr173.com/html/18677_1.html 1.反射获取类属性名和属性类型 unsigned ; objc_property_t *properties = class_copyPropertyList([MyEntity class], &propertyCount); ; i < propertyCount; ++i) { objc_property_t property = properties[i]; const char * name = prop…