Как создать глобальный массив целых чисел? - PullRequest
0 голосов
/ 12 июля 2011

Как мне создать глобальный массив целочисленных значений?

Я пробовал следующие варианты:

@interface
int *iArray; //this space will vary depending upon need in the implementation

@implementation
...
int iArrayInit[4] = {1,2,3,4};
iArray = iArrayInit;

- нижняя строка: мне нужно сохранитьиндексные значения в массиве, к которым я могу легко получить доступ, и использование [NSArray intValue] может замедлить.

спасибо

1 Ответ

0 голосов
/ 12 июля 2011

Если он должен быть статическим, вы можете объявить NSMutableArray как статический в файле реализации и предоставить статические методы для доступа к нему. При использовании NSArray значения должны иметь тип id, что может сделать NSNumber. Вот пример, который в настоящее время не является потокобезопасным.

//.h file
@interface Foo : NSObject
{   
}

+(NSArray*)iArray;
+(void)addiArrayValue:(NSNumber*)value;

@end

//.m file
@implementation Foo

static NSMutableArray *_iArray;

+(void)initialize
{
    if([Foo class] == self)
    {
        _iArray = [[NSMutableArray alloc] init];
    }
}

+(NSArray*)iArray
{
    return [[_iArray copy] autorelease];
}

+(void)addiArrayValue:(NSNumber*)value
{
    [_iArray addObject:value];
}

@end

//Use
[Foo addiArrayValue:[NSNumber numberWithInt:10]];
[Foo addiArrayValue:[NSNumber numberWithInt:12]];
NSLog(@"%@", [Foo iArray]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...