首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ios、UI行为、按钮

ios、UI行为、按钮
EN

Stack Overflow用户
提问于 2012-10-21 03:00:13
回答 1查看 133关注 0票数 0

我是ios新手,来自C#的繁重的UI工作。我有一个应用程序,我想控制哪些按钮是启用禁用基于我的代码中的一些逻辑。为此,我创建了一个小方法来处理按钮的状态,如下所示:

代码语言:javascript
复制
-(void)activateUI:(BOOL *)activate {

    [ validateDataBtn setEnabled: *activate ] ;
    [ modifyCompDataBtn setEnabled: *activate ] ;
    [ saveCompDataBtn setEnabled: *activate ] ;
}

其中所有这些IBOutlets都绑定到UI按钮,如下所示:

代码语言:javascript
复制
__weak IBOutlet UIButton *saveCompDataBtn;
__weak IBOutlet UIButton *modifyCompDataBtn;
__weak IBOutlet UIButton *validateDataBtn;

当我运行应用程序时,在我的方法的第一行得到一个异常:

代码语言:javascript
复制
[ validateDataBtn setEnabled: *activate ] ;

错误是EXC_BAD_ACCESS (代码= 2,地址=0X0)我做错了什么?

EN

回答 1

Stack Overflow用户

发布于 2012-10-21 03:32:21

好呀

代码语言:javascript
复制
- (void)activateUI:(BOOL)activate {
    [validateDataButton setEnabled:activate];
    // etc...
}

我不知道为什么你需要使用一个指针指向BOOL激活...

编辑:

作为标量访问与指针访问的示例:

代码语言:javascript
复制
#import <Foundation/Foundation.h>
#import <AppKit/AppKit.h>

@interface Foo:NSObject
@property (nonatomic, retain) NSTextField *field;
- (void)activateUI:(BOOL *)activate;
- (void)activateUIScalar:(BOOL)activate;
@end

@implementation Foo
@synthesize field;

- (void)activateUI:(BOOL *)activate {
    NSLog(@"%s - setting to: %d",__FUNCTION__,*activate);
    [[self field] setEnabled:*activate];
}

- (void)activateUIScalar:(BOOL)activate {
    NSLog(@"%s - setting to %d (scalar)",__FUNCTION__, activate);
    [[self field] setEnabled:activate];
}

@end

int main(int argc, char *argv[]) {
    NSAutoreleasePool *p = [[NSAutoreleasePool alloc] init];

    BOOL flag = NO;
    Foo *myFoo = [Foo new];
    [myFoo activateUI:&flag];

    flag = YES;
    [myFoo activateUI:&flag];

    //  now using scalar (99.999% of the time the right way)
    [myFoo activateUIScalar:YES];
    [myFoo activateUIScalar:NO];

    [myFoo release];
    [p release];
}

将以下内容打印到控制台:

代码语言:javascript
复制
2012-10-20 14:49:14.228 Untitled 4[27444:707] -[Foo activateUI:] - setting to: 0
2012-10-20 14:49:14.230 Untitled 4[27444:707] -[Foo activateUI:] - setting to: 1
2012-10-20 14:49:14.230 Untitled 4[27444:707] -[Foo activateUIScalar:] - setting to 1 (scalar)
2012-10-20 14:49:14.231 Untitled 4[27444:707] -[Foo activateUIScalar:] - setting to 0 (scalar)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12991675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档