我有以下几点:存储和访问静态的NSArray
@implementation DataSource
+ (NSArray *)someData
{
static NSArray *data = nil;
if (!data) {
data = [[NSArray arrayWithObjects:..., nil] retain];
}
return data;
}
@end
是否有访问从类是自我类方法的方法吗?
我有以下几点:存储和访问静态的NSArray
@implementation DataSource
+ (NSArray *)someData
{
static NSArray *data = nil;
if (!data) {
data = [[NSArray arrayWithObjects:..., nil] retain];
}
return data;
}
@end
是否有访问从类是自我类方法的方法吗?
NSArray *array = [DataSource someData];
NSArray *accessor = [DataSource someData];
的+是指class level access。
是的。在像someData这样的类方法中,您可以调用另一个类方法,如
[self anotherClassMethod].
这里的自我指的是类。
一个静态方法可以用类名来调用。上述静态方法的返回类型NSArray的,所以我们可以在任何地方使用
NSArray *Arr=[DataSource someData];
在其他类的方法,你可以把它作为[self someData]
。从类的实例中,你可以称它为[[self class] someData]
(这具有很好的属性,子类可以覆盖它,并且它们的实现将自动适当地使用)。从课外,你可以称之为[DataSource someData]
。如果这实际上意味着某些Cocoa或Cocoa Touch类(如NS/UITableView)的数据源,则应该将该类实现为单例,而不要将类本身作为数据源,因为使用作为数据源的类未经过充分测试,随着程序的增长,实例变量的缺乏可能会变得非常痛苦。