Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c Yosemite:NSSavePanel:\uu NSArrayI objectAtIndex::索引0超出空数组的界限_Objective C_Xcode_Macos_Cocoa_Osx Yosemite - Fatal编程技术网

Objective c Yosemite:NSSavePanel:\uu NSArrayI objectAtIndex::索引0超出空数组的界限

Objective c Yosemite:NSSavePanel:\uu NSArrayI objectAtIndex::索引0超出空数组的界限,objective-c,xcode,macos,cocoa,osx-yosemite,Objective C,Xcode,Macos,Cocoa,Osx Yosemite,升级到优胜美地之后,当我在应用程序中运行NSSavePanel时,我遇到了一个非常奇怪的崩溃。例如,我选择openDocument:它就会崩溃。或者我打开面板浏览文件,它崩溃了 An uncaught exception was raised 2014-10-24 09:51:28.429 MyApp[2240:374020] *** -[__NSArrayI objectAtIndex:]: index 0 beyond bounds for empty array 2014-10-24 09

升级到优胜美地之后,当我在应用程序中运行NSSavePanel时,我遇到了一个非常奇怪的崩溃。例如,我选择openDocument:它就会崩溃。或者我打开面板浏览文件,它崩溃了

An uncaught exception was raised
2014-10-24 09:51:28.429 MyApp[2240:374020] *** -[__NSArrayI objectAtIndex:]: index 0 beyond bounds for empty array
2014-10-24 09:51:28.431 MyApp[2240:374020] (
    0   CoreFoundation                      0x97c59343 __raiseError + 195
    1   libobjc.A.dylib                     0x973bea2a objc_exception_throw + 276
    2   CoreFoundation                      0x97b1cf8c -[__NSArrayI objectAtIndex:] + 204
    3   MyApp                               0x0013c830 -[NSArray(CocoaDevUsersAdditions) firstObject] + 41
    4   AppKit                              0x94567f16 _NSAccessibilityEntryPointValueForAttribute + 2116
    5   AppKit                              0x9456829e NSAccessibilityEntryPointValueForAttribute + 24
    6   AppKit                              0x9435ff4c ValueOfAttributeWithDefault + 80
    7   AppKit                              0x94090fa2 NSAccessibilityChildren + 47
    8   AppKit                              0x94090f48 NSAccessibilityUnignoredChildrenForOnlyChild + 99
    9   AppKit                              0x94090e50 NSAccessibilityUnignoredDescendant + 42
    10  AppKit                              0x94213a51 -[NSNibAXRelationshipConnector establishConnection] + 130
    11  AppKit                              0x9453e342 -[NSIBObjectData nibInstantiateWithOwner:options:topLevelObjects:] + 1061
    12  AppKit                              0x93ffaad7 -[NSIBObjectData nibInstantiateWithOwner:topLevelObjects:] + 56
    13  AppKit                              0x945debdd -[NSNib _instantiateNibWithExternalNameTable:options:] + 735
    14  AppKit                              0x941a3f77 -[NSNib instantiateNibWithOwner:topLevelObjects:] + 277
    15  AppKit                              0x94651cee -[NSSavePanel(NSSavePanelLayout) _initContentView] + 189
    16  AppKit                              0x9463d317 -[NSSavePanel initWithContentRect:styleMask:backing:defer:] + 645
    17  AppKit                              0x9463c6db +[NSSavePanel _crunchyRawUnbonedPanel] + 216
    18  AppKit                              0x945e978a +[NSOpenPanel openPanel] + 33
    19  AppKit                              0x944b66fb -[NSDocumentController _setupOpenPanel] + 42
    20  AppKit                              0x944b6b62 -[NSDocumentController beginOpenPanelWithCompletionHandler:] + 96
    21  AppKit                              0x944b6630 -[NSDocumentController openDocument:] + 413
    22  libobjc.A.dylib                     0x973bc853 -[NSObject performSelector:withObject:] + 70
    23  AppKit                              0x94380328 __36-[NSApplication sendAction:to:from:]_block_invoke + 51
    24  libsystem_trace.dylib               0x9096dc03 _os_activity_initiate + 89
    25  AppKit                              0x941f3a11 -[NSApplication sendAction:to:from:] + 548
    26  AppKit                              0x9420f9ed -[NSMenuItem _corePerformAction] + 479
    27  AppKit                              0x9420f6c9 -[NSCarbonMenuImpl performActionWithHighlightingForItemAtIndex:] + 162
    28  AppKit                              0x9420ed54 -[NSMenu _performActionWithHighlightingForItemAtIndex:sendAccessibilityNotification:] + 79
    29  AppKit                              0x94585872 __38-[NSMenu performActionForItemAtIndex:]_block_invoke + 52
    30  libsystem_trace.dylib               0x9096dc03 _os_activity_initiate + 89
    31  AppKit                              0x94260736 -[NSMenu performActionForItemAtIndex:] + 141
    32  AppKit                              0x9426069e -[NSMenu _internalPerformActionForItemAtIndex:] + 45
    33  AppKit                              0x94260669 -[NSMenuItem _internalPerformActionThroughMenuIfPossible] + 106
    34  AppKit                              0x942604c1 -[NSCarbonMenuImpl _carbonCommandProcessEvent:handlerCallRef:] + 120
    35  AppKit                              0x94204487 NSSLMMenuEventHandler + 679
    36  HIToolbox                           0x905a45d4 _Z22_InvokeEventHandlerUPPP25OpaqueEventHandlerCallRefP14OpaqueEventRefPvPFlS0_S2_S3_E + 36
    37  HIToolbox                           0x903ee501 _ZL23DispatchEventToHandlersP14EventTargetRecP14OpaqueEventRefP14HandlerCallRec + 2291
    38  HIToolbox                           0x903ed4dc _ZL30SendEventToEventTargetInternalP14OpaqueEventRefP20OpaqueEventTargetRefP14HandlerCallRec + 402
    39  HIToolbox                           0x90400d25 SendEventToEventTarget + 88
    40  HIToolbox                           0x905a4452 _ZL18SendHICommandEventmPK9HICommandmmhPKvP20OpaqueEventTargetRefS5_PP14OpaqueEventRef + 447
    41  HIToolbox                           0x904650cc SendMenuCommandWithContextAndModifiers + 72
    42  HIToolbox                           0x90465074 SendMenuItemSelectedEvent + 207
    43  HIToolbox                           0x90464f38 _ZL19FinishMenuSelectionP13SelectionDataP10MenuResultS2_ + 145
    44  HIToolbox                           0x905fb902 _ZL14MenuSelectCoreP8MenuData5PointdmPP13OpaqueMenuRefPt + 775
    45  HIToolbox                           0x9046c266 _HandleMenuSelection2 + 512
    46  HIToolbox                           0x9046c050 _HandleMenuSelection + 55
    47  AppKit                              0x94182f3b _NSHandleCarbonMenuEvent + 359
    48  AppKit                              0x9400e321 _DPSNextEvent + 1702
    49  AppKit                              0x9400d7a1 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 186
    50  AppKit                              0x93ffff6c -[NSApplication run] + 907
    51  AppKit                              0x93fe94d0 NSApplicationMain + 2082
    52  MyApp                               0x00003215 start + 53

这是您正在使用的扩展类的错误
NSArray+CocoaDevUsersAdditions
firstObject
方法实现错误。您发布的碰撞日志的相关部分包括以下三行:

1   libobjc.A.dylib                     0x973bea2a objc_exception_throw + 276
2   CoreFoundation                      0x97b1cf8c -[__NSArrayI objectAtIndex:] + 204
3   MyApp                               0x0013c830 -[NSArray(CocoaDevUsersAdditions) firstObject] + 41
当您尝试访问不包含对象的数组的索引0时,会发生“索引0超出空数组的界限”错误。 我发现了一些代码,我认为这些代码与

上面的代码是错误的。它应该首先检查对象的数量。正确的代码应该如下所示:

-(id)firstObject
{
    id result = nil;
    if (self.count > 0) {
        result = [self objectAtIndex:0];
    }
    return result;
}
因此,问题是您使用的
NSArray
扩展实现错误


最佳解决方案:删除您的
NSArray+cocooadevusersadditions
类别,并在
NSArray
上使用public
firstObject
方法这是您使用的扩展类的一个bug
NSArray+CocoaDevUsersAdditions
firstObject
方法实现错误。您发布的碰撞日志的相关部分包括以下三行:

1   libobjc.A.dylib                     0x973bea2a objc_exception_throw + 276
2   CoreFoundation                      0x97b1cf8c -[__NSArrayI objectAtIndex:] + 204
3   MyApp                               0x0013c830 -[NSArray(CocoaDevUsersAdditions) firstObject] + 41
当您尝试访问不包含对象的数组的索引0时,会发生“索引0超出空数组的界限”错误。 我发现了一些代码,我认为这些代码与

上面的代码是错误的。它应该首先检查对象的数量。正确的代码应该如下所示:

-(id)firstObject
{
    id result = nil;
    if (self.count > 0) {
        result = [self objectAtIndex:0];
    }
    return result;
}
因此,问题是您使用的
NSArray
扩展实现错误


最佳解决方案:删除您的
NSArray+cocooadevusersadditions
类别,并在
NSArray
上使用public
firstObject
方法这是您使用的扩展类的一个bug
NSArray+CocoaDevUsersAdditions
firstObject
方法实现错误。您发布的碰撞日志的相关部分包括以下三行:

1   libobjc.A.dylib                     0x973bea2a objc_exception_throw + 276
2   CoreFoundation                      0x97b1cf8c -[__NSArrayI objectAtIndex:] + 204
3   MyApp                               0x0013c830 -[NSArray(CocoaDevUsersAdditions) firstObject] + 41
当您尝试访问不包含对象的数组的索引0时,会发生“索引0超出空数组的界限”错误。 我发现了一些代码,我认为这些代码与

上面的代码是错误的。它应该首先检查对象的数量。正确的代码应该如下所示:

-(id)firstObject
{
    id result = nil;
    if (self.count > 0) {
        result = [self objectAtIndex:0];
    }
    return result;
}
因此,问题是您使用的
NSArray
扩展实现错误


最佳解决方案:删除您的
NSArray+cocooadevusersadditions
类别,并在
NSArray
上使用public
firstObject
方法这是您使用的扩展类的一个bug
NSArray+CocoaDevUsersAdditions
firstObject
方法实现错误。您发布的碰撞日志的相关部分包括以下三行:

1   libobjc.A.dylib                     0x973bea2a objc_exception_throw + 276
2   CoreFoundation                      0x97b1cf8c -[__NSArrayI objectAtIndex:] + 204
3   MyApp                               0x0013c830 -[NSArray(CocoaDevUsersAdditions) firstObject] + 41
当您尝试访问不包含对象的数组的索引0时,会发生“索引0超出空数组的界限”错误。 我发现了一些代码,我认为这些代码与

上面的代码是错误的。它应该首先检查对象的数量。正确的代码应该如下所示:

-(id)firstObject
{
    id result = nil;
    if (self.count > 0) {
        result = [self objectAtIndex:0];
    }
    return result;
}
因此,问题是您使用的
NSArray
扩展实现错误


最佳解决方案:删除您的
NSArray+cocooadevusersadditions
类别,使用
NSArray

上的public
firstObject
方法,如果您认为这是一个bug,是否应通过?如果您认为这是一个bug,是否应通过?向苹果报告,如果你认为这是一个bug,应该通过向苹果报告吗?只需添加“else return nil”就可以了,否则你会有麻烦(如果它编译的话)。实际上是一个公共基础方法,这就是为什么它被从AppKIT代码访问的原因。它不应被类别覆盖。只需从类别中删除该方法即可。@Darren同意,并且在类别中具有冲突的方法名称不是一件好事。我已经更新了我的答案。只需添加“else return nil”,否则您将遇到麻烦(如果它编译成功的话)。实际上是一个公共基础方法,这就是为什么它被从AppKIT代码访问的原因。它不应被类别覆盖。只需从类别中删除该方法即可。@Darren同意,并且在类别中具有冲突的方法名称不是一件好事。我已经更新了我的答案。只需添加“else return nil”,否则您将遇到麻烦(如果它编译成功的话)。实际上是一个公共基础方法,这就是为什么它被从AppKIT代码访问的原因。它不应被类别覆盖。只需从类别中删除该方法即可。@Darren同意,并且在类别中具有冲突的方法名称不是一件好事。我已经更新了我的答案。只需添加“else return nil”,否则您将遇到麻烦(如果它编译成功的话)。实际上是一个公共基础方法,这就是为什么它被从AppKIT代码访问的原因。它不应被类别覆盖。只需从类别中删除该方法即可。@Darren同意,并且在类别中具有冲突的方法名称不是一件好事。我已经更新了我的答案。