我应该如何在Objective-C中继承NSWindow初始化

sha*_*een 8 cocoa objective-c

我想创建一个子类NSWindow.这个子类需要在使用之前初始化一些成员变量.在目标c中捕获初始化的最佳方法是什么?我发现init很少被调用的方式允许我这样做. NSWindow有一些我需要覆盖的初始化向量.我需要覆盖它们中的每一个吗?

Ole*_*ann 8

每个类应该有一个所谓的指定初始化程序.这是所有其他init方法调用的init方法.那是要覆盖的那个.文档通常会告诉您指定的初始化程序是哪一个.在这种情况下NSWindow,它是:

initWithContentRect:styleMask:backing:defer:

此方法是NSWindow类的指定初始化程序.

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

请参阅Apple的"Objective-C编程语言"中的指定初始化程序.