Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/111.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios NSObject+;(BOOL)isSubclassOfClass:返回错误结果的方法_Ios_Nsobject - Fatal编程技术网

Ios NSObject+;(BOOL)isSubclassOfClass:返回错误结果的方法

Ios NSObject+;(BOOL)isSubclassOfClass:返回错误结果的方法,ios,nsobject,Ios,Nsobject,我有三个班:A班、B班和C班 ClassC继承自ClassB,后者继承自ClassA 我试图编写一个单元测试来验证ClassC是否继承自ClassB: XCTAssertTrue([ClassC isSubclassOfClass:[ClassB class]]); 这返回false XCTAssertTrue([ClassC isSubclassOfClass:[ClassA class]]); 返回true [ClassC class] superclass] 返回ClassB 请注意

我有三个班:A班、B班和C班

ClassC继承自ClassB,后者继承自ClassA

我试图编写一个单元测试来验证ClassC是否继承自ClassB:

XCTAssertTrue([ClassC isSubclassOfClass:[ClassB class]]);
这返回false

XCTAssertTrue([ClassC isSubclassOfClass:[ClassA class]]);
返回true

[ClassC class] superclass]
返回ClassB

请注意,当我在控制台中测试
[ClassC isSubclassOfClass:[ClassB class]]]
时,它返回true,即使在我的单元测试中的代码在同一测试中返回false之前立即进行测试也是如此

有人能解释这是怎么发生的吗


我从评论中尝试了布赖恩的建议。从我的单元测试日志中,我得到:

0x102a8c4e0 0x110d21820

从控制台登录我得到:

0x102a8c4e0 0x102a8c4e0


您可能已经将一些类添加到了应用程序目标和单元测试目标中

您的类只能添加到应用程序目标

从您的编辑来看,似乎是
ClassB
出了问题,但值得检查这三个问题

SenTest/XTest使用一个测试工具,使应用程序中包含的类可用于测试,而不必显式地包含它们的实现


包含这两个类会给您提供类的副本,这就是它们具有不同内存地址的原因。

您阅读了此线程吗?这看起来像是同一个问题,但我在静态库中没有任何类。
NSLog(@“%p%p”,[ClassC超类],[ClassB类])
different@BryanChen谢谢你的建议。在我的单元测试中,它们是不同的。在控制台中,它们是相同的!感谢您的建议,我看不出ClassB将添加到测试目标的何处-在inspector target membership小部件中,仅检查应用程序目标,并且它不存在于目标构建阶段的编译源代码列表中。其他课程也是如此。