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