Person *person1 = [[Person alloc]init];
Person *person2 = [[Person alloc]init];
// 可以调用类中的私有方法,但是会有一个警告
[person1 performSelector:@selector(actionTow)];
[person1 performSelector:@selector(actionOne:) withObject:@"test"];
NSLog(@"person1的地址:%p",person1);
NSLog(@"person2的地址:%p",person2);
// 比较两个对象的地址是否相同
if ([person1 isEqual:person2]) {
NSLog(@"两个对象地址相同");
}else{
NSLog(@"两个对象地址不同");
}
// 判断某个对象是否属于某个类或者他的父类
if([person1 isKindOfClass:[Person class]]){
NSLog(@"person1属于Person类");
}
if ([person1 isKindOfClass:[NSObject class]]) {
NSLog(@"person1属于NSObject类");
}
// 判断某个对象是否属于某个类,但是不能确定它的父类
if([person1 isMemberOfClass:[Person class]]){
NSLog(@"person1属于Person类");
}else{
NSLog(@"person1属不于Person类");
}
if ([person1 isMemberOfClass:[NSObject class]]) {
NSLog(@"person1属于NSObject类");
}else{
NSLog(@"person1属不于NSObject类");
}
// 判断某个方法是否在.m中是否实现
if ([person1 respondsToSelector:@selector(actionTow)]) {
NSLog(@"person1实现了actionTow");
}else{
NSLog(@"person1没有实现了actionTow");
}
本文GitHub地址https://github.com/zhangkiwi/iOS_SN_NSObject