2016-06-14 5 views
1

У меня есть проект XCode, который компилируется и работает нормально, но когда я добавляю элемент в пользовательский интерфейс конкретного XIB, он сбой XCode при попытке сохранить или когда XCode теряет фокус. Глядя на данные об ошибке сбоя, похоже, это ошибка утверждения, связанная с NSTableHeader, но я не понимаю, куда идти оттуда? Я не использую авто-макет, и это приложение OSX.XCode 7.3 сбой при редактировании XIB

Process:    Xcode [2505] 
Path:     /Applications/Xcode.app/Contents/MacOS/Xcode 
Identifier:   com.apple.dt.Xcode 
Version:    7.3.1 (10188.1) 
Build Info:   IDEFrameworks-10188001000000000~3 
App Item ID:   497799835 
App External ID:  817226719 
Code Type:    X86-64 (Native) 
Parent Process:  ??? [1] 
Responsible:   Xcode [2505] 
User ID:    501 

Date/Time:    2016-06-14 11:30:04.824 -0700 
OS Version:   Mac OS X 10.11.5 (15F34) 
Report Version:  11 
Anonymous UUID:  20048F22-546D-D351-6F8C-D73FF28F4650 


Time Awake Since Boot: 67000 seconds 

System Integrity Protection: enabled 

Crashed Thread:  0 Dispatch queue: com.apple.main-thread 

Exception Type:  EXC_CRASH (SIGABRT) 
Exception Codes:  0x0000000000000000, 0x0000000000000000 
Exception Note:  EXC_CORPSE_NOTIFY 

Application Specific Information: 
ProductBuildVersion: 7D1014 
ASSERTION FAILURE in /Library/Caches/com.apple.xbs/Sources/IDEInterfaceBuilder/IDEInterfaceBuilder-10117/InterfaceBuilderKit/Document/ObjectContainer/IBObjectContainer.m:513 
Details: Can't get the OID of an object not in the document: <NSTableHeaderView: 0x7fc5daeefd90> 
Object: <IBObjectContainer: 0x7fc5dae4eeb0> 
Method: -objectIDForObject: 
Thread: <NSThread: 0x7fc5d3e17e80>{number = 1, name = main} 
Hints: None 
Backtrace: 
    0 -[IDEAssertionHandler handleFailureInMethod:object:fileName:lineNumber:assertionSignature:messageFormat:arguments:] (in IDEKit) 
    1 _DVTAssertionHandler (in DVTFoundation) 
    2 _DVTAssertionFailureHandler (in DVTFoundation) 
    3 -[IBObjectContainer objectIDForObject:] (in IDEInterfaceBuilderKit) 
    4 -[IBDocument objectIDForObject:] (in IDEInterfaceBuilderKit) 
    5 -[IBDocument documentArchiver:referenceIDForObject:referenceType:] (in IDEInterfaceBuilderKit) 
    6 -[IBDocumentArchiver referenceIDForObject:withReferenceType:] (in IDEInterfaceBuilderKit) 
    7 -[IBDocumentArchiver archiveObjectReference:referenceType:forKey:] (in IDEInterfaceBuilderKit) 
    8 -[IBDocumentArchiver archiveObjectReference:referenceType:forKey:defaultValue:] (in IDEInterfaceBuilderKit) 
    9 -[NSTableView(IBDocumentArchivingGenerator) archiveWithDocumentArchiver:] (in IDEInterfaceBuilderCocoaIntegration) 
10 __51-[IBDocumentArchiver archiveObject:forOptionalKey:]_block_invoke (in IDEInterfaceBuilderKit) 
11 -[IBDocumentArchiver recurseWithElementNamed:forObject:kind:invokingBlock:] (in IDEInterfaceBuilderKit) 
12 -[IBDocumentArchiver archiveObject:forOptionalKey:] (in IDEInterfaceBuilderKit) 
13 __59-[IBDocumentArchiver archiveArray:withName:forOptionalKey:]_block_invoke (in IDEInterfaceBuilderKit) 
14 -[IBDocumentArchiver recurseWithElementNamed:forObject:kind:invokingBlock:] (in IDEInterfaceBuilderKit) 
15 -[IBDocumentArchiver archiveArray:withName:forOptionalKey:] (in IDEInterfaceBuilderKit) 
16 -[IBDocumentArchiver archiveArray:withName:forOptionalKey:defaultValue:] (in IDEInterfaceBuilderKit) 
17 -[NSView(IBViewIntegration) ibArchiveSubviews:] (in IDEInterfaceBuilderKit) 
18 -[NSView(IBDocumentArchivingGenerator) archiveWithDocumentArchiver:] (in IDEInterfaceBuilderKit) 
19 -[IBNSCustomView(IBDocumentArchivingGenerator) archiveWithDocumentArchiver:] (in IDEInterfaceBuilderCocoaIntegration) 
20 __51-[IBDocumentArchiver archiveObject:forOptionalKey:]_block_invoke (in IDEInterfaceBuilderKit) 
21 -[IBDocumentArchiver recurseWithElementNamed:forObject:kind:invokingBlock:] (in IDEInterfaceBuilderKit) 
22 -[IBDocumentArchiver archiveObject:forOptionalKey:] (in IDEInterfaceBuilderKit) 
23 __59-[IBDocumentArchiver archiveArray:withName:forOptionalKey:]_block_invoke (in IDEInterfaceBuilderKit) 
24 -[IBDocumentArchiver recurseWithElementNamed:forObject:kind:invokingBlock:] (in IDEInterfaceBuilderKit) 
25 -[IBDocumentArchiver archiveArray:withName:forOptionalKey:] (in IDEInterfaceBuilderKit) 
26 -[IBDocument archiveTopLevelObjects:] (in IDEInterfaceBuilderKit) 
27 -[IBDocument archiveAndVerifyArchivingOfTopLevelObjects:] (in IDEInterfaceBuilderKit) 
28 -[IBDocument archivePlatformIndependentDataWithDocumentArchiver:] (in IDEInterfaceBuilderKit) 
29 -[IBDocument archiveDocument:] (in IDEInterfaceBuilderKit) 
30 -[IBDocumentArchiver recurseWithElementNamed:forObject:kind:invokingBlock:] (in IDEInterfaceBuilderKit) 
31 -[IBDocumentArchiver archiveDocument:withType:compatibilityVersion:] (in IDEInterfaceBuilderKit) 
32 -[IBDocumentArchiver dataFromArchiveDocument:withType:compatibilityVersion:] (in IDEInterfaceBuilderKit) 
33 __46-[IBDocument fileWrapperOfType:options:error:]_block_invoke (in IDEInterfaceBuilderKit) 
34 -[IBDocument fileWrapperOfType:options:error:] (in IDEInterfaceBuilderKit) 
35 -[IBDocument fileWrapperOfType:error:] (in IDEInterfaceBuilderKit) 
36 -[NSDocument writeToURL:ofType:error:] (in AppKit) 
37 -[IBDocument writeToURL:ofType:error:] (in IDEInterfaceBuilderKit) 
38 -[NSDocument writeToURL:ofType:forSaveOperation:originalContentsURL:error:] (in AppKit) 
39 -[IBDocument writeToURL:ofType:forSaveOperation:originalContentsURL:error:] (in IDEInterfaceBuilderKit) 
40 -[NSDocument _writeSafelyToURL:ofType:forSaveOperation:forceTemporaryDirectory:error:] (in AppKit) 
41 -[NSDocument _writeSafelyToURL:ofType:forSaveOperation:error:] (in AppKit) 
42 -[NSDocument writeSafelyToURL:ofType:forSaveOperation:error:] (in AppKit) 
43 -[IDEEditorDocument writeSafelyToURL:ofType:forSaveOperation:error:] (in IDEKit) 
44 __66-[NSDocument saveToURL:ofType:forSaveOperation:completionHandler:]_block_invoke_22463 (in AppKit) 
45 __66-[NSDocument saveToURL:ofType:forSaveOperation:completionHandler:]_block_invoke2460 (in AppKit) 
46 __66-[NSDocument saveToURL:ofType:forSaveOperation:completionHandler:]_block_invoke_22313 (in AppKit) 
47 __50-[IDEEditorDocument continueFileAccessUsingBlock:]_block_invoke.74 (in IDEKit) 
48 -[NSDocument continueFileAccessUsingBlock:] (in AppKit) 
49 -[IDEEditorDocument continueFileAccessUsingBlock:] (in IDEKit) 
50 __101-[NSDocument _fileCoordinator:asynchronouslyCoordinateReadingContentsAndWritingItemAtURL:byAccessor:]_block_invoke_2 (in AppKit) 
51 __68-[IDEEditorDocument continueAsynchronousWorkOnMainThreadUsingBlock:]_block_invoke (in IDEKit) 
52 __62-[NSDocumentController(NSInternal) _onMainThreadInvokeWorker:]_block_invoke2079 (in AppKit) 
53 __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ (in CoreFoundation) 
54 __CFRunLoopDoBlocks (in CoreFoundation) 
55 __CFRunLoopRun (in CoreFoundation) 
56 CFRunLoopRunSpecific (in CoreFoundation) 
57 RunCurrentEventLoopInMode (in HIToolbox) 
58 ReceiveNextEventCommon (in HIToolbox) 
59 _BlockUntilNextEventMatchingListInModeWithFilter (in HIToolbox) 
60 _DPSNextEvent (in AppKit) 
61 -[NSApplication _nextEventMatchingEventMask:untilDate:inMode:dequeue:] (in AppKit) 
62 -[DVTApplication nextEventMatchingMask:untilDate:inMode:dequeue:] (in DVTKit) 
63 -[NSApplication run] (in AppKit) 
64 NSApplicationMain (in AppKit) 
65 0x000000010c51a39b (in Xcode) 
66 start (in libdyld.dylib) 

abort() called 

ответ

1

я с подобной проблемой, и я думаю, что это потому, что мои файлы XIB довольно старые (от XCode 4.6 или старше). С тех пор произошло существенное изменение в xml-схеме. (См. this article.) Я смог внести изменения в свой XIB, который мне нужно было сделать, рыбалка XCode 6 из Time Machine и копирование вместе с XCode 7 в приложениях. Я не пытался открывать какие-либо проекты с помощью XCode 6, но я сразу открыл XIB и внес изменения, которые мне нужно было сделать вне проекта.

Что странно в том, что я смог изменить один из этих файлов XIB всего пару недель назад. XCode (7) затем полностью переписал XML с новой схемой, и теперь нет проблем с редактированием этого XIB. Кроме того, даже XCode 6 сработает, если я попытаюсь обновить XIB до более новой схемы. (Думаю, я могу только изменить свой XIB, потому что XCode 6, в отличие от XCode 7, все еще может редактировать старую схему, не обновляя ее.)

Я думаю, что Apple может представить обновление программного обеспечения за последние пару недель, которое является внешним для XCode, но, тем не менее, прервал обновление xml. Или что-то еще, что я сделал, сделал это, но я не могу думать, что это может быть.

FWIW: Я нахожусь на 10.11.5, поэтому по крайней мере часть интерфейса XCode 6 по-прежнему работает на последней ОС.

EDIT: Я был в состоянии обновить XML и, таким образом, иметь возможность редактировать XIB в XCode 7.3.1, используя немного более активное участие решение:

  1. Использование Fusion или Parallels для создания виртуальных 10,8.
  2. Установите XCode 5.1.1 в виртуальном. (Вы можете найти ссылки для скачивания here.)
  3. Откройте XIB в XCode 5.1.1 и обновите его. Теперь вы сможете открыть его и сохранить в XCode 7.
+0

Спасибо, ваш ответ имеет смысл. Мой проект несколько лет, и я подозреваю, что вы правильно относитесь к изменениям схемы XML. К счастью, мне удалось отследить мою проблему до NSTableView, которую я смог удалить, и теперь все кажется счастливым. – ThinkCL

Смежные вопросы