Ios 为什么iPhone5.1模拟器提供的调试信息少于4.3模拟器?

Ios 为什么iPhone5.1模拟器提供的调试信息少于4.3模拟器?,ios,debugging,ios-simulator,crash-reports,Ios,Debugging,Ios Simulator,Crash Reports,在我的代码中,我犯了一些错误,将NSNumber分配给NSString: self.totalLikesLabel.text=[user objectForKey:@"totalLikes"]; 当应用程序在上述点崩溃时,5.1模拟器没有显示代码中哪些行导致崩溃的具体信息。然而,4.3模拟器做到了 我是否必须在5.1模拟器中配置一些设置,使其在这种情况下像4.3一样工作?5.1模拟器有什么功能 为了防止此类运行时错误,您可以使用@try{}@catch{}封装该错误,或者在分配以下内容之前检

在我的代码中,我犯了一些错误,将NSNumber分配给NSString:

self.totalLikesLabel.text=[user objectForKey:@"totalLikes"];

当应用程序在上述点崩溃时,5.1模拟器没有显示代码中哪些行导致崩溃的具体信息。然而,4.3模拟器做到了


我是否必须在5.1模拟器中配置一些设置,使其在这种情况下像4.3一样工作?

5.1模拟器有什么功能

为了防止此类运行时错误,您可以使用
@try{}@catch{}
封装该错误,或者在分配以下内容之前检查对象:

id s = [user objectForKey:@"totalLikes"];

if ([s isKindOfClass [NSString class]]) ...

5.1模拟器带来了什么

为了防止此类运行时错误,您可以使用
@try{}@catch{}
封装该错误,或者在分配以下内容之前检查对象:

id s = [user objectForKey:@"totalLikes"];

if ([s isKindOfClass [NSString class]]) ...
这应该让你看到比SIGABRT多一点


这应该会让你看到比SIGABRT多一点的东西。

用“为什么iPhone 5.1模拟器提供的调试信息比4.3模拟器少?”@FabienB感谢你重新措辞我的问题。用“为什么iPhone 5.1模拟器提供的调试信息比4.3模拟器少”这样的措辞会更有意义吗@FabienB感谢您重新表述我的问题。简言之,SIGABRT信号,将一行指向main.m和-[\uu NSCFNumber isEqualToString:]:未指向代码中任何地方而将无法识别的选择器发送到实例0x8e5fe70。这与4.3模拟器不同,4.3模拟器正好指向我在问题中发布的那一行。我认为使用调试信息的意义在于我们不知道我们应该在代码中的什么地方首先使用
@try
@catch
。另外,try和catch是资源密集型的。简而言之,信号SIGABRT,将一行指向main.m和-[\uu NSCFNumber isEqualToString:]:无法识别的选择器发送到实例0x8e5fe70,但没有指向代码中的任何地方。这与4.3模拟器不同,4.3模拟器正好指向我在问题中发布的行。我认为使用调试信息的意义在于,我们不知道应该在代码中的何处首先使用
@try
@catch
。另外,请尝试并catch是资源密集型的。非常感谢。它像一个符咒一样工作!(只是想知道为什么这不是默认值。)非常感谢。它像一个符咒一样工作!(只是想知道为什么这不是默认值。)