我现在花了大约12个小时试图解决这个谜题,但我不能!事实是我大约3个星期进入我的Swift冒险,这是我第一次编写任何代码(我想我在Atari 800XL上做了一次彩虹!)
我真的不知道我在做什么......我也明白,我在这里所做的事情可能是根本错误的,所以我会欣赏礼物包装的批评。
我有一个滑块 - C1
我想用变量设置它的值。但是,它想要一个浮点数,我似乎无法将我正在使用的数组转换为浮点数。实际上我无法将任何数组值转换为其他任何内容,并且不断收到有关AnyObject的错误。下面的代码是我运行的试验的一次迭代,一切都没有运气。这让我很生气!
错误是
不能将int值赋给float类型的值 AnyObject不能转换为NSNumber;你的意思是用作!强迫垂头丧气
这是我从Parse获取数组并将其分配给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")
这是用户端的代码
var defaults = NSUserDefaults.standardUserDefaults()
var loadArray = defaults.arrayForKey("ehsLoad")!
var test: AnyObject = loadArray[0]
var testFloat = Int(test)
c1.value = testFloat
我很欣赏它在上面显示了一个int,但我无法转换为任何东西! Xcode让我插入一个强制向下转换为!NSNumber
var = int(test as! NSNumber)
这里我收到此错误
无法将类型'__NSCFString'(0x10c0bfc50)的值转换为'NSNumber'(0x10c550b88)。 (lldb)
如果我尝试使用强制向下倾斜
var testFloat = test as! Float
在运行应用程序时,我收到错误
无法将类型'__NSCFString'(0x10b690c50)的值转换为'NSNumber'(0x10bb21b88)。 (lldb)
答案 0 :(得分:1)
您的test
变量是NSString
。尝试
var test = loadArray[0] as! NSString
然后使用
test.floatValue