OK、状況は少し複雑ですが、問題自体の性質は、私よりも Cocoa メモリ管理に詳しい人にとっては非常に単純なはずです。
いくつかの詳細: - メイン アプリから、「ロード可能な」バンドル (で構成されるNSWindowController
) をロードしています - 両方のプロジェクト (メイン アプリと「プラグイン」) は ARC 対応です
私のプラグイン コードには、カスタムの初期化メソッドがあります。
- (id)initWithAPI:(id)api
{
pluginWindowController* newPluginWindowController = [super initWithWindowNibName:@"PluginWindow"];
if (newPluginWindowController)
{
[newPluginWindowController setAPI:api];
}
return newPluginWindowController;
}
これはAPI
宣言されている方法です:
@property (unsafe_unretained) id API;
さて、ここにキャッチがあります:
- 私は使用
initWithAPI:
して初期化しておりAPI
、設定されています。 API
の値をテストしているときでも、- (void)windowDidLoad:
問題なく表示されます。- ただし、別のメソッド内からまったく同じことを実行しようとすると(実際には、プラグインのウィンドウのボタンクリックによってトリガーされるIBAction)...取得しようとするとエラーが
[self API]
トリガーされEXC_BAD_ACCESS
ます。
私は何を間違っていますか?何か案は?