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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Swift Playground

Swift Playgroundは、Swiftをインタラクティブに習得できるiPad向けのアプリケーション。コーディングの知識は一切必要なく、Swift Playgrounds上でプログラミングしたコードによりドローン・ロボットを自在に動かすことが可能です。

Swift

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

Q&A

解決済

1回答

559閲覧

swift エラーが出ます助けてください

sugi-

総合スコア0

Swift Playground

Swift Playgroundは、Swiftをインタラクティブに習得できるiPad向けのアプリケーション。コーディングの知識は一切必要なく、Swift Playgrounds上でプログラミングしたコードによりドローン・ロボットを自在に動かすことが可能です。

Swift

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

0グッド

0クリップ

投稿2021/07/09 08:48

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
(例)PHP(CakePHP)で●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。

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

エラーメッセージ ownLikeListArray.removeAll(where: {$0 == thisUserID}) KeyChainConfig.setKeyArrayData(value: ownLikeListArray, key: "ownLikeList") のコードの部分が二つエラーで上の方はExtra argument 'where' in call 下のエラーはCannot convert value of type '[String : Any]' to expected argument type '[String]'と出ましたどこが間違えているかわかりません。お願いです至急助けてください

該当のソースコード

ソースコードimport Foundation import Firebase protocol ProfileSenddDone { func profileSendDone() } protocol LikeSendDelegate { func like() } class SendDBModel { //データベースのありか let db = Firestore.firestore() //プロパティとしてアクセスしたいので var profileSendDone:ProfileSenddDone? var likeSendDelegate:LikeSendDelegate? //プロフィールをfirestoreへ送信 func sendProfileData(userData:UserDataModel,profileImageData:Data){ //画像を入れる場所 let imageRef = Storage.storage().reference().child("profileImage").child("(UUID().uuidString + String(Date().timeIntervalSince1970)).jpeg") //ここにprofileImageDataのデータをおく imageRef.putData(profileImageData, metadata: nil){metaData, error in //もしエラーであればこれ以上下に行かない処理 if error != nil{ return } imageRef.downloadURL { url, error in if error != nil{ return } if url != nil{ self.db.collection("Users").document(Auth.auth().currentUser!.uid).setData( ["name":userData.name as Any,"age":userData.age as Any,"height":userData.height as Any,"bloodType":userData.bloodType as Any,"prefecture":userData.prefecture as Any,"gender":userData.gender as Any,"profileImageString":url?.absoluteString as Any,"uid":Auth.auth().currentUser!.uid as Any,"quickWord":userData.quickWord as Any,"work":userData.work as Any,"onlineORNot":userData.onlineORNot as Any] //absoluteStringはurlを返す(取得する) ) //自分のデータを保存する処理 KeyChainConfig.setKeyData(value: ["name":userData.name as Any,"age":userData.age as Any,"height":userData.height as Any,"bloodType":userData.bloodType as Any,"prefecture":userData.prefecture as Any,"gender":userData.gender as Any,"profile":userData.profile as Any,"profileImageString":url?.absoluteString as Any,"uid":Auth.auth().currentUser!.uid as Any,"quickWord":userData.quickWord as Any,"work":userData.work as Any], key: "userData") //自分のデータを取り出す //このタイミングで上のprofileSendDoneを呼ぶ self.profileSendDone?.profileSendDone() } } } } func sendToLike(likeFlag:Bool,thisUserID:String){ //まだlikeをしていない状態、再びlikeをする前の状態 if likeFlag == false{ self.db.collection("Users").document(thisUserID).collection("like").document(Auth.auth().currentUser!.uid).setData(["like":false]) //消す deleteToLike(thisUserID: thisUserID) var ownLikeListArray = KeyChainConfig.getKeyArrayData(key: "ownLikeList") ownLikeListArray.removeAll(where: {$0 == thisUserID}) KeyChainConfig.setKeyArrayData(value: ownLikeListArray, key: "ownLikeList") //自分がLikeした人たちの一覧 print(ownLikeListArray.debugDescription) }else if likeFlag == true{ let userData = KeyChainConfig.getKeyArrayData(key: "userData") self.db.collection("Users").document(thisUserID).collection("like").document(Auth.auth().currentUser!.uid).setData(["like":true,"gender":userData["gender"] as Any,"uid":userData["uid"]as Any,"age":userData["age"]as Any,"height":userData["height"]as Any,"profileImageString":userData["profileImageString"]as Any,"prefecture":userData["prefecture"]as Any,"name":userData["name"]as Any,"quickWord":userData["quickWord"]as Any,"profile":userData["profile"]as Any,"bloodType":userData["bloodType"]as Any,"work":userData["work"]as Any]) self.db.collection("Users").document(Auth.auth().currentUser!.uid).collection("ownLiked").document(thisUserID).setData(["like":true,"gender":userData["gender"] as Any,"uid":userData["uid"]as Any,"age":userData["age"]as Any,"height":userData["height"]as Any,"profileImageString":userData["profileImageString"]as Any,"prefecture":userData["prefecture"]as Any,"name":userData["name"]as Any,"quickWord":userData["quickWord"]as Any,"profile":userData["profile"]as Any,"bloodType":userData["bloodType"]as Any,"work":userData["work"]as Any]) var ownLikeListArray = KeyChainConfig.getKeyArrayListData(key: "ownLikeList") ownLikeListArray.append(thisUserID) KeyChainConfig.setKeyArrayData(value: ownLikeListArray, key: "ownLikeList") //like終わったよ self.likeSendDelegate?.like() } } func deleteToLike(thisUserID:String){ self.db.collection("Users").document(thisUserID).collection("like").document(Auth.auth().currentUser!.uid).delete() self.db.collection("Users").document(Auth.auth().currentUser!.uid).collection("like").document(thisUserID).delete() self.db.collection("Users").document(Auth.auth().currentUser!.uid).collection("ownLiked").document(thisUserID).delete() } }

試したこと

調べたが出でこない
ここに問題に対して試したことを記載してください。

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

xcode最新ios11 Udemyのペアーズ風マッチングアプリの40番目です
ここにより詳細な情報を記載してください。

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

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

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

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

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

hoshi-takanori

2021/07/09 12:32

KeyChainConfig.getKeyArrayData の戻り値の型は何ですか?
sugi-

2021/07/15 04:45

すみません、自分の打ち間違えでした。
guest

回答1

0

自己解決

すみません、自分の打ち間違えでした。

投稿2021/07/15 04:46

sugi-

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問