Может кто-нибудь объяснить эту ошибку, которую я получаю при попытке использовать NSOutlineView на основе представлений? Крушение происходит только на OS X Lion (10.7), а не на Mountain Lion (10.8). Если я запустил приложение на ML, все будет хорошо. Но если я запустил его на Lion, он сработает с ошибкой «Невозможно декодировать объект класса (NSSourceListBackgroundView)» ниже. Это происходит даже в том случае, если я устанавливаю цель сборки (а не только цель развертывания) в 10.7 SDK (он строит против 10.7 и 10.8 SDK без предупреждений или ошибок и отлично работает на 10.8 при построении на них).View-based NSOutlineView Lion Обратная совместимость?
Я не знаю, используя функцию 10.8 только здесь, которая не помечена компилятором? Я настроил фоны объектов NSTableCellView и NSTableRowView, используемых в виде контура, если это имеет значение, и мое приложение использует Autolayout. Я ничего не мог найти в журналах изменений, заголовочных файлах Apple или NSOutlineView/NSTableView, и у меня создалось впечатление, что NSOutlineViews на основе представлений совместимы с 10.7. Раньше я использовал NSTableView и никогда не имел таких проблем, хотя это первый раз, когда я пытался сделать NSOutlineView.
Я искал это в Google и в целом ряде других мест, и все, что я смог найти, - это обсуждение того, что похоже на идентичную проблему на немецком языке, на котором, похоже, не было разрешения (из того, что я мог сказать, используя Google Translate).
*** -[NSKeyedUnarchiver decodeObjectForKey:]: cannot decode object of class (NSSourceListBackgroundView)
0 CoreFoundation 0x00007fff944fcf56 __exceptionPreprocess + 198
1 libobjc.A.dylib 0x00007fff95110d5e objc_exception_throw + 43
2 CoreFoundation 0x00007fff944fcd8a +[NSException raise:format:arguments:] + 106
3 CoreFoundation 0x00007fff944fcd14 +[NSException raise:format:] + 116
4 Foundation 0x00007fff96f29705 _decodeObjectBinary + 2714
5 Foundation 0x00007fff96f2a976 -[NSKeyedUnarchiver _decodeArrayOfObjectsForKey:] + 1193
6 Foundation 0x00007fff96f0145c -[NSArray(NSArray) initWithCoder:] + 486
7 Foundation 0x00007fff96f29797 _decodeObjectBinary + 2860
8 Foundation 0x00007fff96f28ab2 _decodeObject + 201
9 AppKit 0x00007fff91e08832 -[NSView initWithCoder:] + 1051
10 AppKit 0x00007fff91e2667f -[NSScrollView initWithCoder:] + 240
11 Foundation 0x00007fff96f29797 _decodeObjectBinary + 2860
12 Foundation 0x00007fff96f2a976 -[NSKeyedUnarchiver _decodeArrayOfObjectsForKey:] + 1193
13 Foundation 0x00007fff96f0145c -[NSArray(NSArray) initWithCoder:] + 486
14 Foundation 0x00007fff96f29797 _decodeObjectBinary + 2860
15 Foundation 0x00007fff96f28ab2 _decodeObject + 201
16 AppKit 0x00007fff91e08832 -[NSView initWithCoder:] + 1051
17 AppKit 0x00007fff91e083a1 -[NSCustomView initWithCoder:] + 652
18 Foundation 0x00007fff96f29797 _decodeObjectBinary + 2860
19 Foundation 0x00007fff96f2a976 -[NSKeyedUnarchiver _decodeArrayOfObjectsForKey:] + 1193
20 Foundation 0x00007fff96f0145c -[NSArray(NSArray) initWithCoder:] + 486
21 Foundation 0x00007fff96f29797 _decodeObjectBinary + 2860
22 Foundation 0x00007fff96f28ab2 _decodeObject + 201
23 AppKit 0x00007fff91e08832 -[NSView initWithCoder:] + 1051
24 AppKit 0x00007fff91e083a1 -[NSCustomView initWithCoder:] + 652
25 Foundation 0x00007fff96f29797 _decodeObjectBinary + 2860
26 Foundation 0x00007fff96f2a976 -[NSKeyedUnarchiver _decodeArrayOfObjectsForKey:] + 1193
27 Foundation 0x00007fff96f0145c -[NSArray(NSArray) initWithCoder:] + 486
28 Foundation 0x00007fff96f29797 _decodeObjectBinary + 2860
29 Foundation 0x00007fff96f28ab2 _decodeObject + 201
30 AppKit 0x00007fff91e08832 -[NSView initWithCoder:] + 1051
31 AppKit 0x00007fff91e083a1 -[NSCustomView initWithCoder:] + 652
32 Foundation 0x00007fff96f29797 _decodeObjectBinary + 2860
33 Foundation 0x00007fff96f2a976 -[NSKeyedUnarchiver _decodeArrayOfObjectsForKey:] + 1193
34 Foundation 0x00007fff96f0145c -[NSArray(NSArray) initWithCoder:] + 486
35 Foundation 0x00007fff96f29797 _decodeObjectBinary + 2860
36 Foundation 0x00007fff96f28ab2 _decodeObject + 201
37 AppKit 0x00007fff91e08832 -[NSView initWithCoder:] + 1051
38 AppKit 0x00007fff91e083a1 -[NSCustomView initWithCoder:] + 652
39 Foundation 0x00007fff96f29797 _decodeObjectBinary + 2860
40 Foundation 0x00007fff96f2a976 -[NSKeyedUnarchiver _decodeArrayOfObjectsForKey:] + 1193
41 Foundation 0x00007fff96f0145c -[NSArray(NSArray) initWithCoder:] + 486
42 Foundation 0x00007fff96f29797 _decodeObjectBinary + 2860
43 Foundation 0x00007fff96f28ab2 _decodeObject + 201
44 AppKit 0x00007fff91e08832 -[NSView initWithCoder:] + 1051
45 AppKit 0x00007fff91e279cf -[NSClipView initWithCoder:] + 56
46 Foundation 0x00007fff96f29797 _decodeObjectBinary + 2860
47 Foundation 0x00007fff96f2a976 -[NSKeyedUnarchiver _decodeArrayOfObjectsForKey:] + 1193
48 Foundation 0x00007fff96f0145c -[NSArray(NSArray) initWithCoder:] + 486
49 Foundation 0x00007fff96f29797 _decodeObjectBinary + 2860
50 Foundation 0x00007fff96f28ab2 _decodeObject + 201
51 AppKit 0x00007fff91e08832 -[NSView initWithCoder:] + 1051
52 AppKit 0x00007fff91e2667f -[NSScrollView initWithCoder:] + 240
53 Foundation 0x00007fff96f29797 _decodeObjectBinary + 2860
54 Foundation 0x00007fff96f2a976 -[NSKeyedUnarchiver _decodeArrayOfObjectsForKey:] + 1193
55 Foundation 0x00007fff96f0145c -[NSArray(NSArray) initWithCoder:] + 486
56 Foundation 0x00007fff96f29797 _decodeObjectBinary + 2860
57 Foundation 0x00007fff96f28ab2 _decodeObject + 201
58 AppKit 0x00007fff91e08832 -[NSView initWithCoder:] + 1051
59 AppKit 0x00007fff91e083a1 -[NSCustomView initWithCoder:] + 652
60 Foundation 0x00007fff96f29797 _decodeObjectBinary + 2860
61 Foundation 0x00007fff96f2a976 -[NSKeyedUnarchiver _decodeArrayOfObjectsForKey:] + 1193
62 Foundation 0x00007fff96f0145c -[NSArray(NSArray) initWithCoder:] + 486
63 Foundation 0x00007fff96f29797 _decodeObjectBinary + 2860
64 Foundation 0x00007fff96f28ab2 _decodeObject + 201
65 AppKit 0x00007fff91e08832 -[NSView initWithCoder:] + 1051
66 Foundation 0x00007fff96f29797 _decodeObjectBinary + 2860
67 Foundation 0x00007fff96f28ab2 _decodeObject + 201
68 AppKit 0x00007fff91ef993e -[NSWindowTemplate initWithCoder:] + 3998
69 Foundation 0x00007fff96f29797 _decodeObjectBinary + 2860
70 Foundation 0x00007fff96f2a976 -[NSKeyedUnarchiver _decodeArrayOfObjectsForKey:] + 1193
71 Foundation 0x00007fff96f2a377 -[NSSet(NSSet) initWithCoder:] + 519
72 Foundation 0x00007fff96f29797 _decodeObjectBinary + 2860
73 Foundation 0x00007fff96f28ab2 _decodeObject + 201
74 AppKit 0x00007fff91d0d1b9 -[NSIBObjectData initWithCoder:] + 2099
75 Foundation 0x00007fff96f29797 _decodeObjectBinary + 2860
76 Foundation 0x00007fff96f28ab2 _decodeObject + 201
77 AppKit 0x00007fff91d0c864 loadNib + 235
78 AppKit 0x00007fff91d0bdb8 +[NSBundle(NSNibLoading) _loadNibFile:nameTable:withZone:ownerBundle:] + 217
79 AppKit 0x00007fff91d0bcd3 +[NSBundle(NSNibLoading) loadNibFile:externalNameTable:withZone:] + 141
80 AppKit 0x00007fff91d0bc16 +[NSBundle(NSNibLoading) loadNibNamed:owner:] + 364
81 AppKit 0x00007fff91f7ccd7 NSApplicationMain + 398
Дополнительная информация: С NSSourceListBackgroundView по-видимому, не является частью общественного API, я начал искать, где это время экземпляр. От взгляда на XML в моем .xib-файле, я смог определить, что они, по-видимому, являются видимыми в представлении NSScrollView, который содержит рассматриваемый NSOutlineView (поэтому IB помещает их там, по-видимому?). Я вставил оператор журнала, чтобы выгрузить подпрограммы NSScrollView, и там есть множество объектов NSSourceListBackgroundView.
Существует два объекта NSScroller и один NSClipView, как и ожидалось. Но есть также множество этих объектов NSSourceListBackgroundView, которые, по-видимому, не могут быть созданы на Lion (и у них нет соответствующего публичного файла заголовка, который я вижу). Ни один из моих других объектов NSTableView, основанных на представлении, не имеет этого, кроме NSOutlineView.
Кроме того, у меня нет стиля подсветки, установленного в «список источников»: он установлен на «Нет».
Кто-нибудь знает, какова цель этих объектов, или почему IB добавила их в мой XIB-файл? Является ли мой XIB коррумпированным? Я бы ДЕЙСТВИТЕЛЬНО не должен был перестраивать его, поэтому я надеюсь, что нет.