Я хочу использовать структуру c-style в нескольких классах, но я борюсь с ее глобальным доступом.Как использовать структуру c-style в нескольких классах
Я определяю структуры в заголовочном файле класса «Утилиты»:
typedef struct
{
int length;
SInt16 *someData;
} NewStruct;
+ (NewStruct *)initStructWithValue:(int)length;
В другом классе я инициализировать эту структуру с помощью метода класса из Utitlities:
@property (nonatomic, assign) NewStruct *newStruct;
_newStruct = [Utilities initStructWithValue: 5]
Теперь я хочу используйте newStruct в других классах. Однако, когда я ставлю
extern NewStruct *newStruct;
в верхней части заголовка-файлов он не работает, кажется, что у меня нет доступа к newStruct.
Я получаю ошибку: команда линкер потерпела неудачу с кодом выхода 1 (использование -v, чтобы увидеть вызова)
Что я делаю не так, и что было бы лучшим способом сделать это? Или, может быть, лучше избегать использования этой структуры в качестве глобальной переменной?
Почему вы используете c-структуру вместо объективного класса c? – ganchito55
Я использую его в сочетании с основным звуком с очень низкой задержкой – Gerard
@ ganchito55 даже яблоко использует их, см. 'CGRect',' CGPoint'. Они полезны для некоторых случаев. – meth