新しい 4.0.2 iOS アップデートについて読んでいたとき、ハッカーが何をするのか、またはバッファ オーバーフローを試みているのか知りたいと思っていました。ウィキペディアをいくつか調べた後、malloc で遊んで、独自の「NSObject」を作成することに興味を持ちました。
私は実際に私のアプリケーションでこれを使用する予定はありません。目的の c を学習したり遊んだりするためだけです。
もちろん、予想通り、自分では解決できない問題に遭遇しました。
私のオブジェクトを作成するために私は:
+ (id)create{ return malloc(sizeof(self)); }
と
- (void)free { free(self); }
[TestObject create] を呼び出す場合。次のコンソール メッセージが表示されます。
「8/11/10 11:17:31 PM TestingHeap[2675] *** NSInvocation: 警告: クラス 'AObject' のオブジェクト 0x100002100 は doesNotRecognizeSelector を実装していません: -- 中止」
それで、私のオブジェクトを NSObject として処理しようとしています..?どうすればこれを解決できますか。
また、Foundation または AppKit を使用せずにコンパイルすると、特に __objc_empty_vtable と __objc_empty_cache のシンボルが見つからないというエラーが発生します。/usr/include/objc/ からいくつかのヘッダーファイルをインクルードしようとしました
前もって感謝します。
アップデート
libobjc とリンクした後、クラスからメソッドを呼び出そうとすると、EXC_BAD_INSTRUCTION を受け取ります。