当我阅读新的 4.0.2 iOS 更新时,我想知道黑客做了什么或尝试对缓冲区溢出做什么,在一些维基百科让我对玩 malloc 感兴趣并因此创建了我自己的“NSObject”之后。
我实际上并不打算在我的任何应用程序中使用它,它仅用于学习和使用 Objective-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。