我的项目是面向服务的,一切都来自服务。我在 UILabel、tableviews 等中加载数据。当特定文本不是来自服务时,我不想在那里显示 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。而是正在执行当前视图中的其余代码。
我不明白我哪里出错了?