3

尽管支持 iVar 说它是 ,但一个BOOL属性正在返回。NOYes

问题

我有一个PFIBinaryPointView带有BOOL属性的类:

@property (nonatomic, getter=isGlowing) BOOL glowing;

我正在sut用 Kiwi 测试另一个类。此类的一部分是numberToDisplay:设置或取消设置glowing属性的方法。

context(@"when numberToDisplay is called", ^{
    __block PFIBinaryPointView *point;
    it(@"should activate the correct points for the number 1", ^{
        [sut numberToDisplay:1];
        point = [sut.binaryPoints objectAtIndex:0];
        [[theValue([point isGlowing]) should] equal:theValue(YES)];
    });
});

但是isGlowing总是返回 aNO尽管它的烘焙 iVar 说它是(应该是)YES

图片

我试过的:

  • 起初我认为这是一个 Kiwi 问题,但后来我测试插入了一个帮助器 BOOL BOOL test = point.isGlowing;testNO一直如此。
  • 我尝试使用 NSLog 语句对其进行记录,以查看是否存在任何差异 -> 始终No或 0。
  • 我仔细检查了PFIBinaryPointView该类是否有任何 iVar 的隐式声明。但是我使用默认的 getter 和 setter,也没有@synthesize任何地方。
  • 我试图重命名该属性。在它被调用之前isActive
  • 我为洞项目做了一个清洁工作。
  • 我多次重新启动 Xcode。

因此,如果有人可以向我解释这种奇怪的行为,请这样做或更好地告诉我如何说服酒店返回正确的结果。

4

2 回答 2

1

Could you please try frame variable point._glowing and see what it reports?

If it lies to you, then it’s time for a bug report

If it says the right thing, try right clicking on the _glowing iVar, and editing its summary. I suspect a “YES” to show up in the resulting window.

于 2013-10-31T21:08:14.083 回答
0

我在一些第 3 方代码中遇到了这个问题。看起来 bool 没有在任何地方初始化,当它实际自动初始化为 false 时,xcode 假定它是 true !(无论如何.. 初始化 bool 解决了我的问题)。

于 2017-01-25T05:26:33.893 回答