質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

2回答

1703閲覧

[SwiftUI]配列のソートについて

kdmn

総合スコア5

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2021/11/28 06:11

プログラミング初心者です。配列を逆順にしたかったのでreverse()を使って実装しようとしたのですがエラーが出ます。エラー文の意味もよくわかりません。ググってみても「配列を逆順にするにはreverse()を使いう」と書いてある記事が多くあります。ご教授いただけると幸いです。

swift

1struct MyAccount: View { 2 @Binding var isSetting:Bool 3 var columns: [GridItem] = Array(repeating: .init(), count: 3) 4 var postedImages = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 5 postedImages.reverse() 6 var body: some View { 7 ScrollView{ 8 VStack { 9 ZStack{ 10 //省略 11 } 12 HStack{ 13 //省略 14 } 15 .padding(.top) 16 LazyVGrid(columns: columns) { 17 ForEach(postedImages, id: .self){ postedImage in 18 Text("(postedImage)") 19 } 20 } 21 } 22 } 23 } 24}

エラー文

  1. Consecutive declarations on a line must be separated by ';'
  2. Expected '(' in argument list of function declaration
  3. Expected '{' in body of function declaration
  4. Expected 'func' keyword in instance method declaration
  5. Expected declaration
  6. Invalid redeclaration of 'postedImages()'

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

この場合structに対するinit()内でもできるかもしれません。

swift

1let postedImages = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 2 3init() { 4 postedImages.reverse() 5}

投稿2021/11/30 09:57

zundaa

総合スコア101

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

今、 postedImages.reverse() という「処理」を書いている場所は、プロパティやメソッドを宣言する場所(varやfuncを書く場所)なので、そこには処理を書けません。処理は、 { 〜 } で囲まれたメソッド(またはクロージャ)の中や、プロパティの初期値を設定する = の後など、決まっている場所にしか書けません。

逆順にした配列を作りたいなら、postedImagesの初期値を設定する処理で

swift

1var postedImages = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].reversed()

のようにして、あらかじめ逆順にしたものを初期値として設定するか、または、SwiftUIなら、 .onAppear メソッドを使って、そのクロージャの中で

swift

1.onAppear { 2 postedImages.reverse() 3}

のように書けば良いと思います。

まずはSwiftの基本的な文法を習得するところから始めることをお勧めします。

投稿2021/11/30 06:57

TakeOne

総合スコア6299

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kdmn

2021/11/30 15:46

ご回答ありがとうございます。また基礎から頑張ります!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問