运行 Class 开头的代码

Run Code At Start of Class

对于我附有实际视图的 class,我可以使用 viewDidLoad 来处理我想使用的任何变量或常量。当视图开始使用时,它将 运行 在方法中的任何其他代码之前。

有没有针对 classes 没有附加视图的东西?例如,如果我有一个名为 PDFCreator 的 class,当我这样创建它时:

PDFcreator *pdf = [[PDFcreator alloc] init];

有没有办法在那一刻 运行 一个函数,以便我可以设置这些变量?或者以其他方式将数据封装在 class?

您已经确定了答案:覆盖 -init 并在那里执行工作。 Apple's documentation on object initialization 在这里可以帮到你。

是的,只需在 init 方法中添加任何代码即可:

@implementation PDFCreator

- (instancetype)init
{
    self = [super init];
    if (self) {
        _someInstanceVariable = @"Hello";
        _anotherInstanceVariable = 12;
    }
    return self;
}

假设您的 @interface PDFCreator 看起来像这样:

@interface PDFCreator : NSObject

@property NSString *someInstanceVariable;
@property (assign) int anotherInstanceVariable;

...