これならできます
ランタイムが関係します。 NSString 型を除き、メソッドの外で「静的グローバル定数型 OC オブジェクト」を宣言することはできません。 宣言した static const NSArray *imgArr は、'compile' のときに imgArr の型を認識しません。 PS: グローバル定数型の定数である static const がコンパイル中にシステムによって必要とされるものを決定してください。 type は定義した定数ですが、OC のオブジェクトの型は「実行時」に決定されます。基本データ型の決定時とは異なり、コンパイル時から実行時までプッシュされます (OC がポリモーフィズムをサポートする理由)。 NSString を除いて、NSString は特別なストレージ構造とシステムが認識できるようにするためのアクセス許可を持つ特別なデータ型です。 さらに深く理解したい場合は、OC の実行時のメカニズムを学ぶ必要があります。
const NSArray * arr = @[@"123",@"456"];このように書くと、すでに定数配列です
これならできます
リーリーランタイムが関係します。
NSString 型を除き、メソッドの外で「静的グローバル定数型 OC オブジェクト」を宣言することはできません。
宣言した static const NSArray *imgArr は、'compile' のときに imgArr の型を認識しません。 PS: グローバル定数型の定数である static const がコンパイル中にシステムによって必要とされるものを決定してください。 type は定義した定数ですが、OC のオブジェクトの型は「実行時」に決定されます。基本データ型の決定時とは異なり、コンパイル時から実行時までプッシュされます (OC がポリモーフィズムをサポートする理由)。
NSString を除いて、NSString は特別なストレージ構造とシステムが認識できるようにするためのアクセス許可を持つ特別なデータ型です。
さらに深く理解したい場合は、OC の実行時のメカニズムを学ぶ必要があります。
const NSArray * arr = @[@"123",@"456"];
このように書くと、すでに定数配列です