如何本身删除Uilabel的子类



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];

最新更新