我已经尝试了我在SO上找到的所有答案,所以要么我遇到了不同的问题,要么热量进入了我的大脑。
无论如何,我在故事板上有一个UIButton,它链接到一个名为_cameraButtonPress的IBAction(UIButton称为_cameraButton)。 按下按钮时,我想暂时禁用该按钮,所以我立即致电[发件人设置启用:否];这工作正常。 但是,在保存图像的不同函数中,成功保存后我使用 [_cameraButton.setEnabled:YES]; 这行不通。
如果我在 IBAction 调用的函数中将发送者替换为 _cameraButton,这也不起作用。 我有UIButton与IBOutlet链接。
我可以发布代码,但现在这是一个相当大的项目,以下是相关位:
在标题中...
IBOutlet UIButton *_cameraButton;
国际文凭组织...
- (IBAction) _cameraButtonPress:(id)sender {
[sender setEnabled:NO]; //stops button responding to touch events
进一步向下使用不同的功能:
} else {
NSLog(@"colour image saved successfully");
[_cameraButton setEnabled:YES];
}
有什么想法吗?
谢谢。
您确定已将_cameraButton与UIButton
连接在一起吗?尝试记录_cameraButton以查看它是否包含对有效对象的引用。
NSLog(@"%@", _cameraButton);
保罗的回答是最合乎逻辑的问题。
顺便说一句,下划线约定用于区分 ivar 和属性。因此,您将有一个类似(对于 ARC)的属性:
@property (nonatomic, weak) IBOutlet UIButton *cameraButton;
而且,如果您需要ivar,您的@synthesize
语句可以是:
@synthesize cameraButton = _cameraButton;
与其他属性相比,这可能与按钮不太相关,但良好做法建议下划线用于与声明属性关联的 ivar,而不是属性本身。
请参阅 Apple 的 Cocoa 编码指南中的命名属性和数据类型。