Saya sekarang telah menghabiskan sekitar 12 jam mencoba memecahkan teka-teki ini, tetapi saya tidak bisa! Yang benar adalah saya sekitar 3 minggu dalam petualangan Swift saya dan ini adalah pertama kalinya saya menulis kode apa pun (yah saya pikir saya membuat pelangi sekali di Atari 800XL saya!)

Saya tidak benar-benar tahu apa yang saya lakukan.... Saya juga mengerti bahwa apa yang saya coba lakukan di sini pada dasarnya salah, jadi saya akan menghargai kritik yang dibungkus dengan hadiah.

Saya memiliki penggeser - C1

Saya ingin menetapkan nilainya dengan variabel. Namun, ia menginginkan float dan sepertinya saya tidak dapat mengubah array yang saya gunakan menjadi float. Sebenarnya saya tidak bisa mendapatkan nilai array apa pun untuk dikonversi ke hal lain, dan terus mendapatkan kesalahan tentang AnyObject. Kode di bawah ini adalah salah satu iterasi dari uji coba yang saya jalankan, semuanya tanpa hasil. Ini membuatku gila!

Kesalahannya adalah

Tidak dapat menetapkan nilai int ke nilai tipe float AnyObject tidak dapat dikonversi ke NSNumber; apakah Anda bermaksud menggunakan sebagai! memaksa tertunduk

Ini adalah kode tempat saya mendapatkan array dari Parse dan menetapkannya ke NSUSER.

        var defaults = NSUserDefaults.standardUserDefaults()

        var getAuditId:String = defaults.stringForKey("auditIdGlobal")!
        var userId:String = defaults.stringForKey("userIdGlobal")!

        var query = PFQuery(className: "auditData")
        query.whereKey("auditId", equalTo:getAuditId)
        query.findObjectsInBackgroundWithBlock {
            (objects: Array?, idError: NSError?) -> Void in

            if idError == nil {

                if let objects = objects as? [PFObject] {
                    for object in objects {


                        var auditId: AnyObject? = object["auditId"]!
                        var callEhs: AnyObject? = object["ehsData"]!
             NSUserDefaults.standardUserDefaults().setObject(callEhs, forKey: "ehsLoad")

Ini adalah kode di ujung pengguna

        var defaults = NSUserDefaults.standardUserDefaults()

        var loadArray = defaults.arrayForKey("ehsLoad")!

        var test: AnyObject = loadArray[0]

        var testFloat = Int(test)

        c1.value = testFloat

Saya menghargai itu menunjukkan int di atas, tetapi saya tidak dapat mengonversi ke apa pun! Xcode meminta saya untuk memasukkan downcast paksa ke as!NSNumber

         var = int(test as! NSNumber)

Di sini saya mendapatkan kesalahan ini

Tidak dapat memberikan nilai tipe '__NSCFString' (0x10c0bfc50) ke 'NSNumber' (0x10c550b88). (lldb)

Jika saya mencoba menggunakan downcast paksa

         var testFloat = test as! Float

Saat menjalankan aplikasi saya mendapatkan kesalahan

Tidak dapat memberikan nilai tipe '__NSCFString' (0x10b690c50) ke 'NSNumber' (0x10bb21b88). (lldb)

0
Midaero 16 Mei 2015, 14:16

1 menjawab

Jawaban Terbaik

Variabel test Anda adalah NSString. Mencoba

var test = loadArray[0] as! NSString

Dan kemudian gunakan

test.floatValue
1
Wojtek Surowka 16 Mei 2015, 14:27
Wojtek - Terima kasih yang tulus. Ini telah berhasil dalam pengujian. Saya memiliki beberapa contoh, tetapi semuanya terlihat baik berkat Anda teman saya.
 – 
Midaero
16 Mei 2015, 14:40