我在使用@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;