Cocoa では、次のコードを使用してアプリのウィンドウの配列を取得します。
CFArrayRef windows;
AXError gettingWindowsResult = AXUIElementCopyAttributeValues(app, (CFStringRef)NSAccessibilityWindowsAttribute, 0, 999, &windows);
次に、それらのウィンドウのいくつかの値をチェックし、AXUIElementRef
そのうちの 1 つの値をクラスの変数に保持します。メソッドの最後で、CFArrayRef
メモリ リークがないことを確認するために を解放します。
if (windows != nil)
{
CFRelease(windows);
}
これにより、保持したウィンドウを使用しようとすると、不正なアクセスエラーが発生します。私の質問: アレイを解放する必要がありますか? もしそうなら、どうすれば不正なアクセスエラーを防ぐことができますか?