我在使用@property@synthesize设置bool时遇到问题。
我正在使用@property BOOL isPaused;并且我可以通过使用[myObject isPaused];来获取它,但是我无法设置它。我想使用[myObject setPaused: NO];。我也试过了,但是如果我没有弄错的话,我需要自己写那个setter。

最佳答案

为什么不使用点符号呢?

myObject.isPaused = YES;
return myObject.isPaused;

如果您的属性声明为@property BOOL isPaused,则setter始终称为
[myObject setIsPaused:YES];

要重命名setter,必须提供完整的签名,包括冒号:
@property(setter=setPaused:) BOOL isPaused;
...
[myObject setPaused:YES];

顺便说一句,命名约定是不在属性中包含动词。
@property(getter=isPaused) BOOL paused;

10-02 07:33