【问题标题】:[__NSCFString size]: Exception - Objective-C (Xcode)[__NSCFString 大小]:异常 - Objective-C (Xcode)
【发布时间】:2014-07-08 14:51:53
【问题描述】:

我有一个基于核心数据模型的应用程序,我正在将数据点加载回视图控制器。这是我得到的例外:

 -[__NSCFString size]: unrecognized selector sent to instance 0xc530dd0

打开异常断点,我发现这行导致了异常:

[self.MyImage setImage:[self.device valueForKey:@"imagename"]];

这是一个很奇怪的错误,因为这条线有效:

[self.StepItTitle setText:[self.device valueForKey:@"title"]];

为什么会崩溃?我需要解决什么问题才能防止这种情况发生?

【问题讨论】:

  • 你有什么问题?
  • 异常说你在一个字符串对象上调用size,当然它没有那个方法。 [self.device valueForKey:@"imagename"] 的结果是什么?试试NSLog(@"%@", [self.device valueForKey:@"imagename"]);
  • @Neeku 我的问题上面已经澄清了。
  • 我忘了:我想MyImage 是一个NSImage 对象?您应该添加更多信息:至少是对象的类型,self.device 对象内部的内容。
  • +1 用于编辑和澄清。总是在询问之前尝试搜索,一旦你询问,提供尽可能多的细节,包括代码和屏幕截图。 (:虽然:寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用。请参阅:How to create a Minimal, Complete, and Verifiable example

标签: ios exception core-data crash


【解决方案1】:

针对您的问题,我添加了以下内容:

self.MyImage 是对 UIImageView 类型对象的引用,[self.device valueForKey:@"imagename"] 返回带有图像名称的 NSString

话虽如此,异常清楚地表明您(或框架)正在将size 调用到NSString 对象。 NSString没有方法,所以异常原因。

您想要做的是创建一个给定文件名的UIImage 并将其设置为视图。 为此,您必须执行以下操作

NSString *filename = [self.device valueForKey:@"imagename"];
UIImage *image = [UIImage imageNamed:filename]; //This loads an image if present in the main bundle
[self.MyImage setImage:image];

当然,你可以只用一行代码来做同样的事情,但为了清楚起见,我花了很多钱。

【讨论】:

  • 再次感谢弗朗西斯科!
猜你喜欢
  • 2023-04-07
  • 2011-06-06
  • 2011-06-25
  • 2012-08-05
  • 2010-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多