由于未捕获的异常“CALayerInvalidGeometry”,应用程序终止,原因是“CALayer位置包含NaN”。

8
当我点击按钮时,出现了这个异常。我不知道我做错了什么,请有人帮助我。我的应用因为这个异常被拒绝了。
我的代码:
 UILabel *rememberMeLabelObj = [[UILabel  alloc]initWithFrame:CGRectMake(xaxisForRememberMeLabel, yaxisForRememberMeLabel, widthForRememberMeLabel, heightForRememberMeLabel)];
rememberMeLabelObj.text = @"Remember me";
rememberMeLabelObj.font =[UIFont systemFontOfSize:14.0];

rememberMeLabelObj.textColor = [UIColor colorWithRed:0.816f green:0.592f  blue:0.157f alpha:1.00f];
[self.view addSubview:rememberMeLabelObj];

1
请参考以下链接,它们可能会对您有所帮助:https://dev59.com/0GUo5IYBdhLWcg3wpg7N https://dev59.com/p2445IYBdhLWcg3wapvF - user4261201
谢谢您的回复,@Nandu。我会查看那些链接。 - App Developer
谢谢@Nandu,我没有给值加上.0f,现在它可以正常工作了。你的链接帮了我很多。 - App Developer
3个回答

4
您正在调用UILabel框架方法,并可能以某种方式计算值,结果是NaN,这意味着“不是数字”,正如您正确地推测的那样,它可以是除零操作的结果。
但它可能出现在很多其他原因:http://en.wikipedia.org/wiki/NaN 参考资料:kuba

谢谢@Naeem,我正在寻找很多关于这个异常的链接。我会参考你建议的链接。 - App Developer
@Naeem 我将我的标签宽度设置为0。这可能会引起问题吗?我的代码类似于 CGRect r = self.lblProgress.frame; r.size.width = 0; self.lblProgress.frame = r; - iRiziya

4

实际上,我解决了我的问题。因为我没有使用浮点数,所以导致了异常。我使用了CGFloat,并将值设为整数,例如400、350等,但是我需要使用400.0f。所以,我遇到了这个问题。现在已经解决了。


奇怪!!这可能导致崩溃,从未想过。 - Jayprakash Dubey

1

当模拟器版本为8.x时,我的iOS应用程序存在相同的问题,在9.x版本中没有问题。经过检查和删除以下代码后,问题得到解决!

- (void)viewWillAppear:(BOOL)animated
 {
  [LoadTableView setContentOffset:CGPointMake(CGFLOAT_MAX, CGFLOAT_MAX)];

  [super viewWillAppear:YES];

 }


 - (void)viewDidAppear:(BOOL)animated
 {
   [LoadTableView reloadData];

   LoadTableView.hidden = 0;

   [super viewDidAppear:YES];


 }

将BOOL设置为“0”应该可以工作,但我建议您使用YES或NO。 - AEDWIP

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接