我想创建一个NSWindow的子类。该子类需要在使用某些成员变量之前对其进行初始化。在 objective-c 中捕获初始化的最佳方法是什么?我发现init很少以允许我执行此操作的方式被调用。 NSWindow有几个初始化向量,我需要重写它们。我需要覆盖它们中的每一个吗?

最佳答案

每个类都应具有一个所谓的指定初始值设定项。这是所有其他init方法调用的init方法。那就是要覆盖的那个。文档通常会告诉您指定的初始化程序是哪一个。对于NSWindow,它是:
initWithContentRect:styleMask:backing:defer:


除了指定的初始化程序之外,如果子类实现了-initWithCoder:协议(protocol),则还应该重写NSCoding-initWithCoder:是从存档(例如NIB文件)实例化实例时使用的初始化程序。

请参阅Apple的“Objective-C编程语言”中的The Designated Initializer

关于objective-c - 我应该如何在Objective-C中继承NSWindow初始化,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4271115/

10-14 20:53
查看更多