Попробуйте написать метод класса или даже функцию C, которая лениво создает массив. Например, вот метод класса, который делает то, что вы хотите:
+ (NSArray *)frequencyChoices
{
static NSArray *choices;
if (choices == nil)
{
choices = [[NSArray alloc] initWithObjects:
@"Daily", @"Weekly", @"Monthly", nil];
}
return choices;
}
Написание той же функциональности, что и функция C, делает ее еще более общей:
NSArray *frequencyChoices(void)
{
static NSArray *choices;
if (choices == nil)
{
choices = [[NSArray alloc] initWithObjects:
@"Daily", @"Weekly", @"Monthly", nil];
}
return choices;
}
Преимущество метода класса заключается в том, что вы можете переопределить его в подклассе, если это когда-нибудь пригодится.