一个BOOL
属性返回NO
,尽管它的后备iVar显示为Yes
。
问题
我有一个类PFIBinaryPointView
,其中包含一个BOOL
属性:
@property (nonatomic, getter=isGlowing) BOOL glowing;
我正在使用Kiwi测试另一个类sut
。这个类的一部分是一个名为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)];
});
});
但是,无论它的备用iVar指示它是(应该是) YES
, isGlowing
始终返回 NO
我尝试过的:
- 起初我以为这是一个Kiwi问题,但然后我测试插入一个辅助BOOL
BOOL test = point.isGlowing;
但是test
也一直是NO
。 - 我尝试使用NSLog语句记录它是否有任何差异 -> 总是
No
或0
。 - 我仔细检查了
PFIBinaryPointView
类是否存在隐式声明的iVar。但是我使用默认的getter和setter,并且没有任何地方使用@synthesize
。 - 我尝试重命名属性。在此之前,它被称为
isActive
。 - 我对整个项目进行了清理。
- 我多次重新启动了Xcode。
因此,如果有人能够解释这种奇怪的行为,请告诉我,或者更好地告诉我如何使属性返回正确的结果。
getter=isGlowing
,我相信它会正常工作。或者,您可以在 @implementation 中添加@synthesize glowing = _glowing
。 (个人而言,我从不使用 _getter=_,我看不出有什么意义) - nielsbot$ (lldb) p (int) point.isGlowing
。 - CouchDeveloper