无法设置协议的合成属性布尔值

时间:2014-09-30 19:19:18

标签: objective-c properties boolean protocols synthesize

我的课程SSENoteTrack符合两个协议SSETrackSSENoteContainer。这两个协议都在接口文件中声明了@property:

@property (nonatomic, assign, getter = isMuted) BOOL muted;

SSENoteTrack.h中,我合成了属性。

@synthesize muted;

SSENoteTrack的实例上,该属性以nil开头。我尝试将它设置在另一个类的代码中,如此:

[track setMuted:YES]

我可以将属性设置为YES就好了。但是,我无法将该属性设置为NO。例如行[track setMuted:NO]后,track.isMuted返回nil

相当奇怪的问题。也许是因为我的协议设置方式?谢谢!

1 个答案:

答案 0 :(得分:0)

是的,我是个白痴。请参阅此SO帖子:https://stackoverflow.com/a/4289697/1539826。我在lldb中输入po来检查isMuted,而不是p,这就是为什么我得零而不是0。