Ios 如何知道哪一行导致异常?
我不熟悉XCode和Objective C。我故意给NSString*分配编号时出错Ios 如何知道哪一行导致异常?,ios,objective-c,xcode,debugging,lldb,Ios,Objective C,Xcode,Debugging,Lldb,我不熟悉XCode和Objective C。我故意给NSString*分配编号时出错 NSString* s = @1; [s uppercaseString]; 虽然XCode给了我警告,但这段代码将被编译。但在运行时,我得到一个异常。现在我在日志中看到了(很抱歉,由于格式问题,我无法正确粘贴is as文本) 在这个日志中,我如何找到错误的确切位置。此日志如何告诉我要更改哪些代码。第5行Sam:[BIDViewController viewDidLoad]+143,如果这是发布版本,则需要
NSString* s = @1;
[s uppercaseString];
虽然XCode给了我警告,但这段代码将被编译。但在运行时,我得到一个异常。现在我在日志中看到了(很抱歉,由于格式问题,我无法正确粘贴is as文本)
在这个日志中,我如何找到错误的确切位置。此日志如何告诉我要更改哪些代码。第5行Sam:[BIDViewController viewDidLoad]+143,如果这是发布版本,则需要使用符号解析函数的内存地址,这称为“符号化”崩溃转储…第5行Sam:[BIDViewController viewDidLoad]+143,如果这是发布版本,您需要用符号来解析函数的内存地址,这称为“符号化”崩溃转储…要了解是哪一行导致了问题,您通常需要向项目中添加异常断点,如中所述
- 全部。在所有例外情况下停止
- Objective-C。在Objective-C异常时停止
- C++。在C++异常上停止。若要停止特定的C++异常,请指定异常名称。< /LI>
要了解是哪一行导致了问题,通常需要向项目中添加异常断点,如中所述
- 全部。在所有例外情况下停止
- Objective-C。在Objective-C异常时停止
- C++。在C++异常上停止。若要停止特定的C++异常,请指定异常名称。< /LI>
因此,看起来您正在运行发布版本(删除调试符号),如果您在生产环境中获得了该崩溃日志,则需要对其进行符号化以找到该行 这给出了一些符号的细节
在开发环境中,您只需添加一个异常断点并从Xcode运行它,因为调试符号不会被剥离。因此,看起来您正在运行发布版本(调试符号被剥离),如果您在生产环境中获得该崩溃日志,则需要对其进行符号化以找到该行 这给出了一些符号的细节
在开发环境中,您只需添加一个异常断点并从Xcode运行它,因为调试符号不会被剥离。在日志中查找您的项目名称,您就会知道 e、 g 如果您想在没有警告的情况下产生真正的崩溃,请尝试以下代码:它将产生索引越界异常并崩溃
NSArray *array = @[@"1",@"2"];
NSLog(@"Item not accessible->%@",(NSString*)array[2]);
在日志中查找您的项目名称,您就会知道 e、 g 如果您想在没有警告的情况下产生真正的崩溃,请尝试以下代码:它将产生索引越界异常并崩溃
NSArray *array = @[@"1",@"2"];
NSLog(@"Item not accessible->%@",(NSString*)array[2]);
设置异常断点或启用NSZombie对象 或 僵尸 从菜单栏中,选择项目>方案>编辑方案
设置异常断点或启用NSZombie对象 或 僵尸 从菜单栏中,选择项目>方案>编辑方案
您不能用像这样的对象C文本创建字符串。它创建NSNumber,但upperCaseString是NSString方法。您最好创建类似NSString*s=@“1”的字符串。您应该会收到“不兼容的指针类型初始化”NSString*“以及类型为“NSNumber*”的表达式的警告,这是您的第一条语句。@INASE-36我提到过,我是故意这样做的。我想了解XCode是如何给我异常日志的。在异常中,它清楚地说,[\u NSCFNumber uppercaseString]传递给实例的无法识别的选择器,\u NSCFNumber是NSNumber的运行时类。请看,您不能创建像这样带有对象C文本的字符串。它创建NSNumber,但upperCaseString是NSString方法。您最好创建类似NSString*s=@“1”的字符串。您应该会收到“不兼容的指针类型初始化”NSString*“以及类型为“NSNumber*”的表达式的警告,这是您的第一条语句。@INASE-36我提到过,我是故意这样做的。我想了解XCode是如何为我提供异常日志的。请参阅异常中明确指出,[\u NSCFNumber UPPERCAESSTRING]传递给实例的未识别选择器,\u NSCFNumber是NSNumber的运行时类。请参阅