Глобальный и статический массив двойных значений

#java #objective-c

#java #objective-c

Вопрос:

Я хочу перевести этот Java-код в аналогичный код objective-c.

 double[] pMatrix = {50,100,150};

double[][] mMatrix = {{0.5,0.4,0.1}};
  

В Java у меня есть это как свойства класса. Поэтому мне нужно иметь доступ к ним повсюду в моем классе. Я пытался поместить этот код в заголовочный файл, но это не сработало.

Есть идеи?

Ответ №1:

Objective-C поддерживает C / C . Итак, вы должны определить extern double Matrix[]; в заголовке, а вы double Matrix[] = {50,100,150}; в .mm. Кроме того, вы можете определять те же значения, что и статические члены некоторого класса (C ), или возвращать их с помощью статических общедоступных методов.

Комментарии:

1. Нет необходимости переходить на Objective-C — это можно довольно легко сделать в Objective-C.

Ответ №2:

 in .h
NSArray *pMatrix;
in .m
pMatrix=[[NSArray alloc] initWithObjects:@"50",@"100",@"150",nil];
  

Ответ №3:

Если они нужны только внутри класса, вы можете объявить его как статическую переменную:

 // In the .m file:

static double pMatrix[] = {50,100,50};
static double mMatrix[][3] = {{0.5,0.4,0.1}};

@implementation MyClass

- (void)someMethod
{
    pMatrix[1] = 50;
}

@end