65 Stimmen

Wie deklariere ich ein Array als eine Konstante in Objective-C?

Der folgende Code führt zu Fehlern:

//  constants.h
extern NSArray const *testArray;

//  constants.m
NSArray const *testArray = [NSArray arrayWithObjects:  @"foo", @"bar", nil];

Der Fehler, den ich erhalte, lautet
initializer element is not constant

Oder wenn ich den Zeiger-Indikator (*) wegnehme, erhalte ich:
statically allocated instance of Objective-C class 'NSArray'

4voto

Javier Flores Font Punkte 2065

Ich habe eine Header-Datei namens "Constants.h" und innerhalb der nächsten konstanten Arrays:

#define arrayOfStrings @[@"1", @"2", @"3", @"4"]
#define arraysOfIds @[@(1), @(2), @(3), @(4)]

Grundsätzlich wird beim Aufruf von arrayOfStrings in Ihrem Code @[@"1", @"2", @"3", @"4"] durch @[@"1", @"2", @"3", @"4"] ersetzt, und dasselbe gilt für arraysOfIds.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X