1、isMemberOfClass是用來(lái)判斷某個(gè)對(duì)象是否為當(dāng)前類的實(shí)例,不能用來(lái)判斷是否屬于某個(gè)類的子類,與父類沒(méi)有關(guān)系。
2、isKindOfClass是用來(lái)判斷某個(gè)對(duì)象是否屬于某個(gè)類或者子類的實(shí)例,與父類有關(guān)系
People *p = [[People alloc] init];
BOOL r1 = [p isMemberOfClass: [People class]];
BOOL r2 = [[People class] isMemberOfClass: [People class]];
BOOL r3 = [p isKindOfClass: [People class]];
BOOL r4 = [[People class] isKindOfClass: [People class]];
結(jié)果是r1為YES,r2為NO,r3為YES,r4為NO。[People class]返回的是類對(duì)象,但是這個(gè)類對(duì)象沒(méi)有初始化,所以比較時(shí)會(huì)被認(rèn)為不相同,如果是[[People alloc] init]來(lái)進(jìn)行比較就會(huì)返回YES。
3、isEqual用來(lái)判斷兩個(gè)對(duì)象是否相等,具體是值是否相等之類的,和==不一樣,==會(huì)根據(jù)判斷兩個(gè)對(duì)象的地址是否想等,不相等就會(huì)返回NO