相关疑难解决方法(0)

目标c是KindOfClass的误解吗?

我有以下对象结构:

动物,狗和猫.正如你所料,狗和猫是从动物遗传的.

我有一个农场班:

 @implementation AnimalFarm

-(Animal*) createAnimal:(AnimalType)type{

  switch (type) {

    case CAT:
      return [Cat new];

    case DOG:
      return [Dog new];

    default:
      return [Animal new];
  }

}

@end
Run Code Online (Sandbox Code Playgroud)

我试着进行单元测试:

  AnimalFarm *farm = [AnimalFarm new];

  Animal *dog = [farm createAnimal:DOG];
  Animal *cat = [farm createAnimal:CAT];

  STAssertTrue([cat isMemberOfClass:[Cat class]],@"cat is not a cat!");
  STAssertTrue([dog isMemberOfClass:[Dog class]],@"Dog is not a dog!");

  STAssertTrue([cat isKindOfClass:[Animal class]],@"Cat is not an animal!");
  STAssertTrue([dog isKindOfClass:[Animal class]],@"Cat is not an animal!");
Run Code Online (Sandbox Code Playgroud)

课程实施:

@interface Cat : Animal {

}


@end

@implementation …
Run Code Online (Sandbox Code Playgroud)

objective-c instanceof

17
推荐指数
1
解决办法
4万
查看次数

标签 统计

instanceof ×1

objective-c ×1