gpt4 book ai didi

ios - NSObject +(BOOL)isSubclassOfClass : method returning wrong result

转载 作者:行者123 更新时间:2023-11-28 21:55:31 26 4
gpt4 key购买 nike

我有三个类(class):ClassA、ClassB 和 ClassC。

ClassC 继承自 ClassB,ClassB 继承自 ClassA。

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

XCTAssertTrue([ClassC isSubclassOfClass:[ClassB class]]);

这会返回 false。

XCTAssertTrue([ClassC isSubclassOfClass:[ClassA class]]);

返回真。

[ClassC class] superclass]

返回 B 类。

还要注意,当我在控制台中测试 [ClassC isSubclassOfClass:[ClassB class]] 时,它返回 true,即使我在单元测试中的代码返回 false 之前立即测试它测试!

谁能解释这是怎么发生的?


我从评论中尝试了 Bryan 的建议。从我的单元测试中记录我得到:

0x102a8c4e0 0x110d21820

从控制台记录我得到:

0x102a8c4e0 0x102a8c4e0

最佳答案

您可能已将一些类同时添加到您的应用目标和单元测试目标。

您的类(class)只能添加到应用程序目标中。

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

SenTest/XCTest 使用测试工具,使应用中包含的类可用于测试,而无需显式包含它们的实现。

同时包含这两个类会为您提供重复的类,这就是它们具有不同内存地址的原因。

关于ios - NSObject +(BOOL)isSubclassOfClass : method returning wrong result,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26746419/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com