Hoşgeldin. Soru sormak veya cevaplamak için hemen üye ol.
0 oy
558 kez görüntülendi
ios development kategorisinde tarafından

Merhabalar, Xcode ile program yazmada henüz yeniyim. Amacım çalıştığım şirkete Android ile yaptığım uygulamanın IOS için de aynısını yapmak.
MS SQL bağlantısını başarıyla gerçekleştiriyorum ama oluşturduğum bir query sonucunu tanımlanmış bir Array değişkenine nasıl populate edebilirim. Array değişkenine populate ettiğim string değerleri TableView üzerinde göstermek istiyorum.
Kodlarımda şu noktaya kadar gelebildim:

import UIKit
class SecondViewController: UIViewController,SQLClientDelegate {
    func error(_ error: String!, code: Int32, severity: Int32) {
        print("\(error!) \(code) \(severity)")
}
    @IBOutlet weak var userListTableView: UITableView!
    var client:SQLClient!
    var uNames: [String] = []
    override func viewDidLoad() {
        super.viewDidLoad()
        client = SQLClient.sharedInstance()!
        //Başlangıçta internal hafızadaki DB verilerini çağırıyoruz.
        strIP = UserDefaults.standard.string(forKey: "DBServerIP")!
        strDBName = UserDefaults.standard.string(forKey: "DBName")!
        strUName = UserDefaults.standard.string(forKey: "DBUser")!
        strPass = UserDefaults.standard.string(forKey: "DBPass")!
}
    @IBAction func btnUserAct(_ sender: Any) {
        client = SQLClient.sharedInstance()!
        client.delegate = self
        client.connect(strIP,username: strUName,password: strPass,database: strDBName){ success in
            if success {
                self.client.execute("Select UserId from Usertbl order by Id") {
                    results in
                    for table in results as! [[[String:AnyObject]]] {
                        for row in table {
                            for (columnName, value) in row {
                                print(value)
//burada başarıyla UserId verilerini Xcode Debug areada başarıyla görünüyor. burada uNames Array değişkenine bu vale değerlerini nasıl populate yapabilirim?
}
}
}
                    self.client.disconnect()
}
}
}
}
}
extension SecondViewController: UITableViewDelegate, UITableViewDataSource {
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return uNames.count
}
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
        cell.textLabel?.text = uNames[indexPath.row]
        return cell
}
}

1 cevap

0 oy
tarafından

Nasıl bir data yapın var çok emin değilim, en dışarıdaki typetan anladığım kadarıyla son kullancağın data AnyObject dönüyor.

Value'ya ulaştığın yerde bunu stringe cast et ve daha sonra istediğin string arrray'e append et.
uNames.append(value as? String) gibi

Daha sonrada, self.client.disconnect() satırının hemen altında tableview ı reload et.

Tableview son datayı referans alarak yeniden çizlecektir.

Tabi bunları delege va datasource ayarlarında bir sorun olmadığını düşünerek söylüyorum. Bunun dışında bir çok yerden hatan olabilir. Benim önerim öncesinde temel örnekler üzerinde biraz daha çalışman yoksa elinde sonunda bir yerde başını ağırtacak çok zorun yaşarsın.

...