0

私のプロジェクトはサービス指向で、すべてがサービスから来ています.UILabel、テーブルビューなどにデータをロードしています.特定のテキストがサービスから来ていない場合、そこにnullを表示したくないし、そのビューも表示したくない.だからリダイレクトしたいエラー画像を表示する他のビューがありますが、 @try 、 @catch は機能していません。

-(void)viewDidLoad
{
  //activity indicator code
  [self performSelector:@selector(threadStartAnimating) withObject:nil afterDelay:0.1];

  NSString *name=[NSString stringWithFormat:@"%@", self.provName];
  CGSize constraint1 = CGSizeMake(250, 2000.0f);
  CGSize size1 = [name sizeWithFont: [UIFont fontWithName:@"Helvetica-Bold" size:18] constrainedToSize:constraint1 lineBreakMode:UILineBreakModeWordWrap];
  self. pName =[[UILabel alloc] init];
  @try {
    if([name length]>0
    {
      self.pName.text=[NSString stringWithFormat:@"%@" ,name];
    }
    else
    {
      NSException *exception = [NSException
                                  exceptionWithName:@""
                                  reason:@""
                                  userInfo:nil];
      @throw exception;
    } 
  }

  @catch (NSException *exception) {
    ErrorView *errorView=[[ErrorView alloc]initWithNibName:@"ErrorView" bundle:nil];
    if([[[UIDevice currentDevice]systemVersion]floatValue]<5.0)
    {
      [self presentModalViewController:errorView animated:NO];
    }
    else
    {
      [self presentViewController:errorView animated:NO completion:nil];
    }
    [errorView release];
  }
}

- (void) threadStartAnimating
{
   //other code

}

ただし、テキストの長さがゼロの場合でも、errorView にリダイレクトされません。代わりに、現在のビューの残りのコードが実行されています。

どこが間違っているのか理解できませんでしたか?

4

0 に答える 0