CloudKitを使用していくつかの配列を格納し、配列を使用してテーブルを埋めます。私はテーブルをリロードしていますが、データは表示されません。私はまだデータベースに追加できるので、iCloudに接続する必要があります。テーブルはCloudKitデータをロード/表示しません
コードを以下に示します。ここでは
import UIKit
import CloudKit
var selectedCellName = ""
class explore: UIViewController, UITableViewDataSource, UITableViewDelegate {
@IBOutlet var tableView: UITableView!
var groupNames = [String]()
var Group = [CKRecord]()
override func viewDidLoad() {
super.viewDidLoad()
loadGroups()
self.tableView.reloadData()
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return groupNames.count
}
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = self.tableView.dequeueReusableCell(withIdentifier: "exploreCell")! as UITableViewCell
// let nameCell = leaderboardInfo[indexPath.row].object(forKey: "Name") as! String
// let usernameCell = leaderboardInfo[indexPath.row].object(forKey: "Username") as! String
//let pointsCell = leaderboardInfo[indexPath.row].object(forKey: "Points") as! String
var nameCellLbl = cell.viewWithTag(100) as! UILabel
nameCellLbl.text = groupNames[indexPath.row]
return cell
}
}
は、データベースを照会するために使用されloadGroups()
機能です:
func loadGroups(){
print("should go")
// let pred = NSPredicate(format: "Username = %@", usernameText)
let pred = NSPredicate(value: true)
let query = CKQuery(recordType: "Group", predicate: pred)
let operation = CKQueryOperation(query: query)
//operation.resultsLimit = CKQueryOperationMaximumResults
operation.qualityOfService = .default
operation.recordFetchedBlock = { (record: CKRecord!) in
if record != nil{
// need self in front?
groupNames.append(record.object(forKey: "groupName") as! String)
//self.tableView.reloadData()
//print(self.groupNames.count)
}
}
database.add(operation)
//self.tableView.reloadData()
// print(leaderboardInfo.count)
}
は、これは動作するために使用され、私は変更を行った場合、私は彼らヶ月製前に私は覚えていない。とにかく、これはデータベースにクエリを実行するすべてのファイルで問題になりますが、テーブルはロードされません。
テーブルをリロードするだけの簡単な更新ボタンを追加しました。私はそれが動作するはずだと思うが、それは私が1分待った後でさえも –
問題はそのgroupNamesが空である可能性があります...私はそこに自己があるかもしれないと言うloadGroups()関数で参照してください追加文?関数が別のファイルにあるときにどのように追加するのですか? –
'loadGroups'が別のクラスにあっても、より良い解決策を得るための私の更新された答えを見てください。 – rmaddy