2

ビューベースの NSOutlineView を使用しようとしたときに発生するこのクラッシュについて誰か説明できますか? クラッシュは OS X Lion (10.7) でのみ発生し、Mountain Lion (10.8) では発生しません。ML でアプリを実行すると、すべて正常に動作します。しかし、Lion で実行すると、以下の「クラス (NSSourceListBackgroundView) のオブジェクトをデコードできません」というエラーでクラッシュします。これは、ビルド ターゲット (デプロイ ターゲットだけでなく) を 10.7 SDK に設定した場合でも発生します (10.7 と 10.8 SDK の両方に対して警告やエラーなしでビルドされ、いずれかに対してビルドすると 10.8 で正常に実行されます)。

ここで、コンパイラによってフラグが立てられていない 10.8 のみの機能を無意識のうちに使用しているのでしょうか? 必要に応じて、アウトライン ビューで使用される NSTableCellView オブジェクトと NSTableRowView オブジェクトの背景をカスタマイズし、アプリで Autolayout を使用しています。Apple の変更ログ、ヘッダー ファイル、または NSOutlineView/NSTableView のドキュメントでこれに関する情報を見つけることができず、ビューベースの NSOutlineView は 10.7 と互換性があるという印象を受けました。私はこれまでNSTableViewを広く使用してきましたが、このような問題は一度もありませんでしたが、NSOutlineViewを試したのはこれが初めてです。

私はこれをGoogleや他のかなりの場所で検索しましたが、解決策がないように思われるドイツ語のサイトで同じ問題のように見えるものについての議論しか見つかりませんでした(私ができる限り) Google 翻訳を使用して伝えます)。

*** -[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 の一部ではないため、インスタンス化されている場所を探し始めました。私の .xib ファイルの XML を見て、明らかに問題の NSOutlineView を含む NSScrollView のサブビューであると判断できました (したがって、IB はそれらをそこに入れているようです)。NSScrollView のサブビューをダンプするログ ステートメントを挿入しましたが、そこには多数の NSSourceListBackgroundView オブジェクトがあります。

予想どおり、2 つの NSScroller オブジェクトと 1 つの NSClipView があります。しかし、これらの NSSourceListBackgroundView オブジェクトは、明らかに Lion でインスタンス化できない (そして、私が見ることができる対応するパブリック ヘッダー ファイルがない) ものもたくさんあります。NSOutlineView を除いて、他のビューベースの NSTableView オブジェクトにはこれがありません。

また、ハイライト スタイルを「ソース リスト」に設定していません。「なし」に設定されています。

これらのオブジェクトの目的が何であるか、またはIBがそれらを私のXIBファイルに追加した理由を知っている人はいますか? XIB が破損していますか? 私は本当にそれを再構築する必要がないので、そうしないことを望んでいます。

4

1 に答える 1