2011-08-24 118 views
2

我有以下几点:存储和访问静态的NSArray

@implementation DataSource 
+ (NSArray *)someData 
{ 
    static NSArray *data = nil; 
    if (!data) { 
    data = [[NSArray arrayWithObjects:..., nil] retain]; 
    } 
    return data; 
} 
@end 

是否有访问从类是自我类方法的方法吗?

回答

2
NSArray *array = [DataSource someData]; 
0

是的。在像someData这样的类方法中,您可以调用另一个类方法,如

[self anotherClassMethod]. 

这里的自我指的是类。

0

一个静态方法可以用类名来调用。上述静态方法的返回类型NSArray的,所以我们可以在任何地方使用

NSArray *Arr=[DataSource someData]; 
0

在其他类的方法,你可以把它作为[self someData]。从类的实例中,你可以称它为[[self class] someData](这具有很好的属性,子类可以覆盖它,并且它们的实现将自动适当地使用)。从课外,你可以称之为[DataSource someData]。如果这实际上意味着某些Cocoa或Cocoa Touch类(如NS/UITableView)的数据源,则应该将该类实现为单例,而不要将类本身作为数据源,因为使用作为数据源的类未经过充分测试,随着程序的增长,实例变量的缺乏可能会变得非常痛苦。