ObjectiveD命令行等效于ViewDidLoad

时间:2012-06-01 18:28:30

标签: objective-c command-line

我只是想知道应该在哪里设置变量的值以便在我的所有方法中使用。 例如,让我们说.h我说:     @property NSString *name;然后在.m中合成它。我在哪里为我的函数分配了一个值,比如-(NSString *)changeUsername:(NSString *) changes-(void)deleteUsername,我可以访问这些数据吗?

3 个答案:

答案 0 :(得分:1)

main()是在命令行程序中调用的第一件事。你不是在那里(或从main()调用的地方)吗?

答案 1 :(得分:1)

由于您正在讨论属性,因此您必须拥有一个要实例化的类。该类的指定初始值设定项(-init或类似的)是设置属性和/或实例变量的正确位置。

Cocoa Touch应用程序将某些初始化标记推迟到-viewDidLoad的唯一原因是视图控制器在初始化时不加载视图,而某些属性或ivars与视图相关加载。在加载(或创建)视图之前,显然无法设置这些内容,因此-viewDidLoad成为设置这类内容的最佳位置。

答案 2 :(得分:0)

你可以在你的类的初始化器中这样做,实际上,这将是C ++或Java中的方法。在objective-c中,您通常使用延迟实例化,最好的位置是在该属性的getter中。

如果有人为该属性赋值,则会调用setter并且一切正常。 如果有人询问FOR值并且尚未设置(为零),您可以创建对象和/或在getter中指定默认值。

// Override accessor for name
- (NSString*)name
{
    if (!_name) {
        _name = @"unknown";
    }

    return _name;
}

访问器方法是您应该直接访问实例变量的唯一位置。