ページ

2009年7月27日月曜日

SimpleCap Hotkeyでエラー #3 解決

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク

原因はイージーミス。リセット時にホットキーを管理している NSMutableSet に対して removeAllObjects を投げているつもりが、release が投げられていた。

HotkeyRegister.m

- (void)unregistAll
{
for (Hotkey* hotkey in _hotkey_set) {
[self unregistHotkey:hotkey];
}
// [_hotkey_set release];
[_hotkey_set removeAllObjects];

}


これでは吹っ飛ぶわけだ。リセットを1回でも実行すればオブジェクトがリリースされて2回目以降のリセットでクラッシュする。

合わせてサンプルの修正版も上げておく。
サンプル:Hotkey-8.zip


なぜ書き間違えたか覚えていないが Xcodeの補完機能で出てきたメソッドを確認なしで確定してしまったのかもしれない。