在我的代码中,我通过将 NSNumber 分配给 NSString 犯了一些错误:
self.totalLikesLabel.text=[user objectForKey:@"totalLikes"];
当应用程序在上述点崩溃时,5.1 Simulator 没有显示我的代码中哪些行导致崩溃的具体信息。但是,4.3 模拟器做到了!
在这种情况下,我是否必须在 5.1 模拟器中配置一些设置才能让它像 4.3 一样工作?
在我的代码中,我通过将 NSNumber 分配给 NSString 犯了一些错误:
self.totalLikesLabel.text=[user objectForKey:@"totalLikes"];
当应用程序在上述点崩溃时,5.1 Simulator 没有显示我的代码中哪些行导致崩溃的具体信息。但是,4.3 模拟器做到了!
在这种情况下,我是否必须在 5.1 模拟器中配置一些设置才能让它像 4.3 一样工作?
1.Go to the breakpoint navigator (left navigation panel 6th one from the left).
2. Click the "+" button at the bottom
3. Select Exception Breakpoint
4. Leave Exception Breakpoint checked
5. In the Exception: field select "Objective-C"
6. In the Break: field select "On Throw"
7. Leave Action: alone (unless you want it to do something)
8. Leave Option: **unchecked**
9. Click "Done"
这应该让你看到比 SIGABRT 多一点的东西。
使用 5.1 模拟器可以获得什么?
为了防止此类运行时错误,您可以@try {} @catch {}
在分配之前将其封装或检查对象:
id s = [user objectForKey:@"totalLikes"];
if ([s isKindOfClass [NSString class]]) ...