【问题标题】:NSCF Array Out of Bounds?NSCF 数组越界?
【发布时间】:2011-06-23 21:04:39
【问题描述】:

我有一个使用 Core Data 的相当简单的应用程序和几个数组控制器(在 IB 中,除了 xcdatamodel 文件外,没有它们的代码文件)。当我运行我的应用程序时,我在日志中收到以下错误(应用程序仍在运行,但在我转到文件 > 新文档之前没有出现任何窗口):

2011-02-08 18:45:10.434 MyApp[35178:a0f] *** -[NSCFArray objectAtIndex:]: index (0) beyond bounds (0)

我的 myDocument.h 或 .m 文件中没有对数组的引用。该错误并不严重(应用程序仍在运行),但它禁用了我的一些代码来加载最后使用的文档或(如果不存在)加载新文档。该应用程序只是在没有可见窗口的情况下加载。我会非常感谢一些帮助,并会很快给予答案:)

编辑:这是 applicationShouldOpenUntitledFile 代码:

- (BOOL)applicationShouldOpenUntitledFile:(NSApplication *)sender
{
    NSArray* urls = [[NSDocumentController sharedDocumentController] recentDocumentURLs];
    if ([urls count] > 0){
        NSURL *lastURL= [urls objectAtIndex: 0];

        [[NSDocumentController sharedDocumentController] openDocumentWithContentsOfURL:lastURL display:YES error:nil];    
        return NO;

    }

    return YES;
}

【问题讨论】:

  • -applicationShouldOpenUntitledFile:发布你正在使用的代码。
  • 在 Xcode 菜单上按 Run -> Stop On Objective C Exceptions 以追踪它发生的位置。
  • @Bavarious:我编辑了帖子以包含它。但是,即使我将该部分注释掉,也会发生错误..
  • 请试试贾斯汀的建议。您发布的代码没有任何问题,并且当您将其注释掉时仍然会发生错误,显然错误不在您认为的位置。
  • @Justin:我没看到那个选项?是 Debug w/ Breakpoints on 吗?

标签: objective-c arrays xcode macos interface-builder


【解决方案1】:

很抱歉在这里发帖,我暂时无权在任何地方发表评论。

@Zakman411:贾斯汀说你应该在“运行”菜单中启用“停止 Objective-C 异常”项,然后启动调试器。 gdb 应该会告诉你异常是在哪里引发的。

【讨论】:

    猜你喜欢
    • 2012-10-28
    • 1970-01-01
    • 2019-05-03
    • 1970-01-01
    • 2023-03-17
    • 2019-05-10
    • 2014-11-16
    • 2012-11-04
    • 2013-07-27
    相关资源
    最近更新 更多