gpt4 book ai didi

objective-c - 优胜美地 : NSSavePanel: __NSArrayI objectAtIndex:]: index 0 beyond bounds for empty array

转载 作者:行者123 更新时间:2023-12-03 17:33:51 31 4
gpt4 key购买 nike

升级到 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: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 超出空数组范围错误。我发现了一些我认为与 this URL 处的 NSArray+CocoaDevUsersAdditions 类匹配的代码。

-(id)firstObject
{
return [self objectAtIndex:0];
}

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

-(id)firstObject
{
id result = nil;
if (self.count > 0) {
result = [self objectAtIndex:0];
}
return result;
}

所以问题是您使用的 NSArray 扩展实现错误。

最佳解决方案:删除 NSArray+CocoaDevUsersAdditions 类别并在 NSArray 上使用公共(public) firstObject 方法

关于objective-c - 优胜美地 : NSSavePanel: __NSArrayI objectAtIndex:]: index 0 beyond bounds for empty array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26543692/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com