[解決済み] 固定サイズのオブジェクトの配列を作成する方法
質問
Swiftで、64個のSKSpriteNodeの配列を作ろうとしています。私は最初にそれを空に初期化したい、そして私は最初の16個のセルと最後の16個のセルにスプライトを置くでしょう(チェスゲームをシミュレートする)。
私がドキュメントで理解したことから、私は次のようなものを期待していました。
var sprites = SKSpriteNode()[64];
または
var sprites4 : SKSpriteNode[64];
しかし、うまくいきません。 2番目のケースでは、次のようなエラーが表示されます: "固定長配列はまだサポートされていません"。これは本当なのでしょうか?私には、それが基本的な機能のように思えるのですが。 私はそのインデックスで直接要素にアクセスする必要があります。
どのように解決するのですか?
固定長配列はまだサポートされていません。実際にはどうなのでしょうか?の配列が作れないというわけではありません。
n
の配列を作れないわけではありません。
let a = [ 1, 2, 3 ]
で3つの配列が得られます。
Int
s. これは簡単に言うと、配列の大きさは
を型情報として
.
の配列が必要な場合
nil
の配列が必要な場合は、まずオプションの型である
[SKSpriteNode?]
ではなく
[SKSpriteNode]
- を宣言した場合、それが配列であれ単一の値であれ、非選択型の変数を宣言することはできません。
nil
. (また、以下のことに注意してください。
[SKSpriteNode?]
とは異なる
[SKSpriteNode]?
... オプションの配列ではなく、オプションの配列が必要です)。
Swiftは、初期化されていない参照の内容についての仮定が、C言語(といくつかの他の言語)のプログラムがバグを起こすことができる方法の1つであるので、変数が初期化されることを要求することについて、設計上非常に明示的です。そのため、明示的に
[SKSpriteNode?]
配列に64個の
nil
s:
var sprites = [SKSpriteNode?](repeating: nil, count: 64)
これは実際には
[SKSpriteNode?]?
を返します。しかし、これはオプションのスプライトの配列です。(少し変ですね、なぜなら
init(count:,repeatedValue:)
はnilを返すことができないはずだからです)。この配列を扱うには、アンラップする必要があります。これを行うにはいくつかの方法がありますが、この場合、私はオプションのバインディング構文を好みます。
if var sprites = [SKSpriteNode?](repeating: nil, count: 64){
sprites[0] = pawnSprite
}
関連
-
[解決済み] SwiftからObjective-Cのコードを呼び出すにはどうしたらいいですか?
-
[解決済み] iOSのステータスバーの文字色を変更する方法
-
[解決済み] Swiftでindexとelementでループを反復させる方法
-
[解決済み] SwiftでStringを配列に分割する?
-
[解決済み] Swift カスタムオブジェクトの配列をプロパティ値でソートする方法
-
[解決済み] ある要素が配列に含まれているかどうかを確認する方法
-
[解決済み] SwiftでUIAlertViewを作成するにはどうしたらいいですか?
-
[解決済み】UIScrollView Scrollable Content Size Ambiguity
-
[解決済み] Protocol ... can only be used as generic constraint because it has Self or associated type requirements "とは、どういう意味ですか?
-
[解決済み] Swiftで警告を消すには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Swiftがエラーを報告。アボートトラップ:6
-
[解決済み] Protocol ... can only be used as generic constraint because it has Self or associated type requirements "とは、どういう意味ですか?
-
[解決済み] swiftで改行なしの印刷をする
-
[解決済み] SwiftUI。TextFieldをファーストレスポンダーにするには?
-
[解決済み] タスクが終了するまで待機する
-
[解決済み] Swift 1.2では、宣言は「final」と「dynamic」の両方にはなり得ないというエラーがある
-
[解決済み] Swiftで警告を消すには?
-
[解決済み] Swiftで複数のカスタムセルを持つUITableview
-
[解決済み] Swift - 複数条件でオブジェクトの配列を並べ替える
-
[解決済み] Swift で UIViewController のサブクラス用のカスタムイニシャライザを作るには?