#import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. //在程序中不要直接比较对象所属的类,明智的作法是调用“类信息查询方法” //能够正确处理那些使用了消息传递机制的对象 //oc中对象的本质:对象实例都是指向某块内存数据的指针 NSDictionary *dic = [NSDictionary new]; dic = @{@"11":@"11"}; UIView *view = [[UIView alloc]initWithFrame:CGRectMake(100, 100, 100, 100)]; [self.view addSubview:view]; NSLog(@"%d",[dic isMemberOfClass:[NSDictionary class]]);//判断出对象是否为某个特定类的实例 0 ??????为何是否? NSLog(@"%d",[dic isMemberOfClass:[NSMutableDictionary class]]);//0 NSLog(@"%d",[dic isKindOfClass:[NSDictionary class]]);//判断出对象是否为某类或其派生类的实例 1 NSLog(@"%d",[dic isKindOfClass:[NSMutableDictionary class]]);//0 NSLog(@"%d",[dic isKindOfClass:[NSArray class]]);// 0 NSLog(@"%d",[view isMemberOfClass:[UIView class]]);//1 } -(NSString *)commaSeparatedStringFromOnjects:(NSArray *)array { NSMutableString *string =[NSMutableString new]; for (id object in array) { if ([object isKindOfClass:[NSString class]]) { [string appendFormat:@"%@,",object]; } else if ([object isKindOfClass:[NSNumber class]]) { [string appendFormat:@"%d,",[object intValue]]; } else if ([object isKindOfClass:[NSData class]]) { // NSString *base64Encode = /**/ // [string appendFormat:@"%@,",base64Encode]; } else { //type not } } return string; }