最近在我的xcode项目中发生了一些奇怪的事情:我一直在尝试学习很多新东西,并通过在不同的简单可可应用程序中测试(由我从头开始编写)来做到这一点。有时候我会得到一个没有任何错误信息的代码,但是当我运行它时,我会停在某个断点处。然后我得出结论,我可能做错了什么,并将代码恢复到错误之前的形式,但从那时起,就不可能让代码运行。即使我将代码恢复到我100%确定以前工作过的状态,它也会停在相同的断点处。为了解决这个问题,我必须从已发生的类复制我的代码,删除类,创建一个具有完全相同名称的新代码,将完全相同的代码粘贴回类中,瞧,它的工作原理再次。究竟发生了什么?我最新的问题代码是这样的:
-(IBAction)openFile:(id)sender {
NSOpenPanel *openPanel = [[NSOpenPanel alloc] init];
NSURL *fileURL;
[openPanel setCanChooseFiles:YES];
[openPanel setCanChooseDirectories:NO];
[openPanel setAllowsMultipleSelection:NO];
[openPanel setAllowedFileTypes:[NSArray arrayWithObject:@"txt"]];
if ( [openPanel runModal] == NSOKButton ) {
fileURL = [openPanel URL];
}
[openPanel release];
}
我知道此代码之前已经有效。它是目前我唯一的方法,当我在菜单中按下打开时它会激活。如果我删除方法中的所有内容,那么按下open应该什么都不做,它无论如何都会在方法内的断点处停止。在使用openGL代码之前,我遇到了完全相同的问题,并且使用了使用c语法进行文件读取的方法。有人知道我一遍又一遍地犯了什么样的可怕错误吗?
答案 0 :(得分:2)
断点是你自己明确设置的东西,告诉Xcode在这个确切的行上暂停程序。从表面上看,它可能看起来像程序崩溃,但实际上它只是等着你告诉它继续下去。
This page看起来对Xcode中的断点接口有一个很好的解释。 (这是来自一个名为Cocos2D的框架,但忽略它。你应该坚持普通的Cocoa,直到你知道你在做什么。)