我只是想知道我应该在哪里设置变量的值以在我的所有方法中使用。例如,假设在我的 .h 中我说:
@property NSString *name;
然后在 .m 中合成它。我在哪里为它分配一个值,以便在我的函数中,比如-(NSString *)changeUsername:(NSString *) changes
and -(void)deleteUsername
,我可以访问该数据?
问问题
124 次
3 回答
1
main()
是在命令行程序中调用的第一件事。你不会在那里(或从 调用的地方main()
)做吗?
于 2012-06-01T18:38:04.993 回答
1
由于您在谈论属性,因此您必须有一个要实例化的类。该类的指定初始化程序(-init
或类似的)是设置属性和/或实例变量的正确位置。
Cocoa Touch 应用程序延迟某些初始化标记的唯一原因-viewDidLoad
是视图控制器在初始化时不会加载它们的视图,并且某些属性或 ivars 与将要加载的视图相关。在加载(或创建)视图之前,显然无法设置这些东西,因此-viewDidLoad
成为设置这些东西的最佳场所。
于 2012-06-01T18:43:14.133 回答
0
好吧,您可以在您的类的初始化程序中这样做,实际上,这将是 C++ 或 Java 中的方法。在 Objective-c 中,您通常使用惰性实例化,最好的地方是在该属性的 getter 中。
如果有人为属性赋值,则调用 setter 并且一切正常。如果有人询问该值并且尚未设置(为零),您可以创建对象和/或在 getter 中分配默认值。
// Override accessor for name
- (NSString*)name
{
if (!_name) {
_name = @"unknown";
}
return _name;
}
访问器方法是您应该直接访问实例变量的唯一地方。
于 2012-06-01T18:39:17.710 回答