在课程开始时运行代码

时间:2015-06-17 15:29:31

标签: ios xcode encapsulation

对于我附加了实际视图的类,我可以使用viewDidLoad来处理我想要使用的任何变量或常量。在视图使用的那一刻,它将在方法中的任何其他代码之前运行。

对于没有附加视图的类,是否有某些功能?例如,如果我有一个名为PDFCreator的类,当我按照这样创建它时:

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

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

2 个答案:

答案 0 :(得分:2)

是的,只需将任何代码添加到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;

...

答案 1 :(得分:0)

您已确定答案:覆盖-init并在那里执行工作。 Apple's documentation on object initialization可能会对您有所帮助。