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

Merhaba arkadaşlar,

Uygulamada SQL'e yaptığım bir 'select' komutunda gelen değerler 'Smallint (16-bit)' tipinde

ben bu değerleri bir değişkene aşağıdaki gibi almak istiyorum ama konu başlığında da belirttiğim hatayı veriyor.

for table in results as! [[[String:AnyObject]]] {
                    for row in table {
                        for (columnName, value) in row {
                            print("\(columnName) = \(value)")
                            if(columnName == "UYGULAMASEKLI"){
                                self.uygsekligelendeger = value as! Int
                            }else if(columnName == "UYGULAMAYERI"){
                                self.uygyerigelendeger = value as! Int
                            }
                        }
                    }
                }

print --> UYGULAMAYERI = 3
Hata --> Could not cast value of type 'NSTaggedPointerString' (0x1b632d900) to 'NSNumber' (0x1b6339c08).

1 cevap

0 oy
tarafından
tarafından seçilmiş
 
En İyi Cevap

gelen AnyObject değerini cast etmelisin.
önce string'e,
daha sonra Double'a
daha sonrda'da integer'a,
bu şekilde kullanmak tehlikeli.

let anyObj:AnyObject = "123.5" as AnyObject        
        if let convertToString = anyObj as? String {
            if let stringToDouble = Double(convertToString) {
                let integer = Int(stringToDouble)
                print("int:\(integer)")
            } else {
                print("string is not convertible to Double")
            }
        } else {
            print("anyObj is not convertible to String")
        }
...