2013-03-03 94 views
0

我知道当错误是''等于'未在此范围内声明时“意味着对象未被正确创建,但是当我创建通知中心用于iOS的widget,使用WeeLoader模板和THEOS进行编译,我得到这个错误:'UITapGestureRecognizer'没有在这个范围内声明。(WeeLoader)'UITapGestureRecognizer'未在此范围内声明

这是我.mm文件:

- (void)loadFullView { 
    UITapGestureRecognizer *Tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)]; 


    UIImage *bg = [[UIImage imageWithContentsOfFile:@"/System/Library/WeeAppPlugins/WeeAppTest.bundle/WeeAppBackground.png"] stretchableImageWithLeftCapWidth:5 topCapHeight:71]; 
    UIImageView *bgView = [[UIImageView alloc] initWithImage:bg]; 
    bgView.frame = CGRectMake(0, 0, 316, 71);  
    bgView.userInteractionEnabled = YES; 

    [bgView addGestureRecognizer:Tap]; 

    [_view addSubview:bgView]; 
    [bgView release]; 
    [Tap release]; 

     UILabel *lbl = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 316, 71)]; 
     lbl.backgroundColor = [UIColor clearColor]; 
     lbl.textColor = [UIColor whiteColor]; 
     lbl.text = @"Hello world"; 
     lbl.textAlignment = UITextAlignmentCenter; 
     [_view addSubview:lbl]; 
     [lbl release]; 
} 

-(void) handleTapGesture:(UIGestureRecognizer *) sender { 

} 

我在做什么错?我确信我正确地声明了一切,顺便说一下,代码在UITapGestureRecognizer中工作。

谢谢。

回答

1

我认为这里有一些事情要做。

我想你可能会超出范围错误,因为手势识别器应在viewDidLoadinit方法中声明。

此外,在UITapGestureRecognizer *Tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)];你打电话给你的方法handleSingleTap:

因此你的方法应该是-(void) handleSingleTap:(UITapGestureRecognizer *) sender

+0

谢谢你的回应,我曾试图在init创建'UITapGestureRecognizer',viewDidLoad中,并且还试图在界面中创建它。仍然是同样的错误:(也是方法名称是一个错字写在这个问题,对不起。 – 2013-03-04 01:14:19

+0

@RandomAwesomeGuy你可以发布更多的代码吗? 这对我有用http://pastebin.com/VuH4Gk8G – badger0053 2013-03-04 01:30:27

+0

这里是我的代码http://pastebin.com/fG9EdTsT – 2013-03-04 02:23:59