UILabel
的子类称为 NewLabel
,in NewLabel.m
+ (NewLabel*)addLabelIntoView:(UIView*)view
{
NewLabel *label = [[NewLabel alloc] init];
CGSize size = CGSizeMake(120.0f, 40.0f);
CGPoint point = CGPointMake(view.bounds.size.width / 2, view.bounds.size.height / 2);
label.frame = CGRectMake(0, 0, size.width, size.height);
label.center = point;
[view addSubview:label];
[NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(removeLabelFromView) userInfo:nil repeats:NO];
return label;
}
- (void)removeLabelFromView {
[self removeFromSuperview];
}
和在UIViewController.m
中,我将其添加以显示NewLabel,并关闭自身
[NewLabel addLabelIntoView:self.view]
但总是崩溃,这是崩溃信息
+[NewLabel removeLabelFromView]: unrecognized selector sent to class 0x103d40738
有什么想法?
在类方法中是self
类。而不是+[NewLabel removeLabelFromView]
,您可能想做-[NewLabel removeLabelFromView]
。更改
[NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(removeLabelFromView) userInfo:nil repeats:NO];
to
[NSTimer scheduledTimerWithTimeInterval:1.0f target:label selector:@selector(removeLabelFromView) userInfo:nil repeats:NO];