質問: arc4random(uids?count) の部分でエラーが発生しています。 SwiftもFirebaseも初心者のため、完全に手詰まってしまいました...。 どなたか教えていただけると幸いです。 よろしくお願いします。
回答: RealtimeDatabaseはよくわからないので主にSwiftについてだけ。 それだけでもいくつか問題ありますね。 * `arc4random()`は引数をとらない関数です。引数をとるのは`arc4random_uniform()`です。 * `arc4random_uniform()`の引数の型は`UInt32`ですが、`uids?count`は`Int?`型です。 オプショナルなのもそうですが、Swiftは型が厳密なのでIntとUInt32も自動でキャストしません。 * `uids`はオプショナルにしたり、Arrayの型パラメータを省略する必要はありますか? 不要なオプショナルや曖昧な型は避けたほうがいいです。後若干好みが入りますが`Array`は使わず`[Type]`を使うことをオススメします。 * snapshot.keyはString型ですよね?NSDictionayとStringにキャストするのは間違いなく失敗しますし多分不要です。 以上の問題を解決するなら私ならこう書きます。 ``` var uids: [String] = [] func matchDatabase(){ // 略 let uid = snapshot.key // 配列にuidを格納 self.uids.append(uid) // uidsからランダムにuidを取り出す var index = arc4random_uniform(UInt32(uids.count)) // 略 } ```