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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Core Data

Core DataはAppleのOS X and iOSのためのオブジェクトモデリングと持続性を持ったフレームワークです。Xcodeはエンティティー、属性そして関係性を特定するためのオブジェクトモデルの編集機能を提供します。

Swift

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

Q&A

1回答

605閲覧

Entityのプロパティを配列化して検索

pon3428

総合スコア14

Core Data

Core DataはAppleのOS X and iOSのためのオブジェクトモデリングと持続性を持ったフレームワークです。Xcodeはエンティティー、属性そして関係性を特定するためのオブジェクトモデルの編集機能を提供します。

Swift

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

0グッド

0クリップ

投稿2023/04/18 07:19

編集2023/04/18 08:44

実現したいこと

Entityを用いた検索

(伴い Entityの配列として扱うこと)

前提

Entityをいれないと検索、検索結果表示はできます

発生している問題・エラーメッセージ

Referencing subscript 'subscript(dynamicMember:)' requires wrapper 'Binding<FetchRequest<Item>.Configuration>'

該当のソースコード

Swift

1 2struct ContentView: View { 3 @Environment(\.managedObjectContext) private var viewContext 4 @FetchRequest(sortDescriptors: [NSSortDescriptor(keyPath: \Item.timestamp, ascending: true)], animation: .default) private var item: FetchedResults<Item> 5 @State private var searchText: String = "" 6 let list = ["list"] 7 8 var body: some View { 9 NavigationView { 10 List(item.text.filter({ cell in 11 if self.searchText.isEmpty { 12 return true 13 } 14 return item.text == self.searchText 15})) { cell in 16 VStack(alignment: .leading) { 17 Text(item.text) 18 .font(.body) 19 Text(item.text) 20 } 21} .searchable(text: $searchText, placement: .navigationBarDrawer, prompt: "search") 22{ 23 24 let matchedItems = self.item.text.filter({ text in 25 return item.text.contains(self.searchText) 26 }) 27 28 if matchedItems.isEmpty { 29 Text("No suggestions found") 30 } 31 ForEach(matchedItems) { cell in 32 Text("what are you looking for ?") 33 .searchCompletion(item.text) 34 } 35} 36 .navigationTitle("MEMO") 37 38 } 39 40 }} 41 42struct ContentView_Previews: PreviewProvider { 43 static var previews: some View { 44 ContentView().environment(\.managedObjectContext, PersistenceController.preview.container.viewContext) 45 } 46} 47

試したこと

Item.textにしました。

補足情報(FW/ツールのバージョンなど)

Xcode14.1

追記

イメージ説明

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

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

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

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

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

guest

回答1

0

Referencing subscript 'subscript(dynamicMember:)' requires wrapper 'Binding<FetchRequest<Item>.Configuration>'

このエラーは該当のソースコードの
24行目
で出ていますでしょうか?
(できましたら、エラーがどこの行で発生しているかも質問欄にご記載してもらえると助かります)

Item.textにしました。

試したことにつきましても、
24行目の
self.item.text.filter({ ... })
Item.text.filter({ ... })に変更してみたということでしょうか?
(できましたら、試したことにつきましても、もう少し具体的に何行目を修正したのかをご記載してもらえると助かります)


このエラーについてだけ書いてみますね。
基本的には過去に質問していただいたものと同じ原因になると思います。

検索時のエンティティの記述の方法
https://teratail.com/questions/mhokry9r649f3e

itemはエンティティの集まり(コレクション・配列的な)ものですので、
これに対してfilterメソッドを呼び出すことはできないと思います。 ← 「追記」で修正しました。
これに対してfilterメソッドを呼び出す形になると思います。 ← 「追記」で修正しました。
(item.text.filterではなく、item.filter) ← 「追記」で修正しました。

*@FetchRequestのFetchedResults<Item>型のプロパティはitemですよね
(該当のソースコードでは「items」ではなく、「s」の付いていない「item」ですよね)

ですので、
self.item.text.filter({ ... })ではなく
self.item.filter({ ... })になると思います。

追記です。

コメントありがとうございます。
画像の添付もありがとうございます。
たくさんエラーがあるみたいですね。。
できれば、こうなる前に、一つずつエラーを解消しながら進めると良いかなと思いました。
(最初の回答の部分で誤ったことを書いてしまいました・・修正していますので、差分もご確認いただけますでしょうか・・)

投稿2023/04/18 08:11

編集2023/04/18 08:51
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

pon3428

2023/04/18 08:43

ご回答ありがとうございます ひとつめのエラーは27行目に出ています (画像を追加しておきます self.item.text.filter({ ... })を Item.text.filter({ ... })は10行目と24行目、です 過去の質問と同じようなことをすみません。 そちらを参照に試してみます。
pon3428

2023/04/18 09:15

修正ありがとうございます item.filter ですね わかりました ありがとうございます
pon3428

2023/04/18 09:16

エラーはすべてitem.text.filterについてです
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問