我不能叫方法

时间:2014-03-22 17:28:30

标签: objective-c

我在ViewController.h中有方法:

- (void)setbannerVisible:(short int)vise;

在ViewController.m中

- (void)setbannerVisible:(short int)vise
{
    if (vise == 1) {
        [_adView setAlpha:1];
        NSLog(@"Show");
    } else {
        [_adView setAlpha:0];
        NSLog(@"Hide");
   }
}

但是当我在其他班级写作时:

ViewController *object = [[ViewController alloc] init];
[object setbannerVisible:0];

什么都没发生。

我创建了adView:

- (void)viewDidLoad
{
    _adView = [[ADBannerView alloc] initWithFrame:CGRectZero];
    _adView.frame = CGRectOffset(_adView.frame, 0, 0);
    [self.view addSubview:_adView];
    _adView.delegate=self;

    [super viewDidLoad];
}

1 个答案:

答案 0 :(得分:2)

当您的应用运行此行时:

ViewController *object = [[ViewController alloc] init];

创建了一个新的ViewController实例。这个实例没有连接任何东西,并且在你调用BannerVisible:之后会被破坏。

您需要更改代码,以便获取实际具有屏幕视图并在该实例上调用方法的ViewController的现有实例。如何执行此操作取决于此代码的位置以及如何创建ViewController的实例并显示其视图。

除此之外:方法名称应以小写字母(bannerVisible:)开头,并且应该命名以描述它们的作用(setBannerVisibility:)。