我试图将关键价格的对象转换为NSString,但无论我做什么,我都会在后续行中获得lldb错误
arrayDic.setValue(object.objectForKey("price") as NSString, forKey: "price")
当我删除它时没有错误。 object.objectForKey(" price")是解析数据库中的数字类型。如何将其正确转换为字符串?
代码:
func loadItems() {
var query = PFQuery(className:"Items")
query.orderByAscending("createdAt")
query.findObjectsInBackgroundWithBlock {
(objects: [AnyObject]!, error: NSError!) -> Void in
if error == nil {
for object in objects {
arrayDic.setValue(object.objectForKey("price") as NSString, forKey: "price")
arrayDic.setValue(image, forKey: "image")
}
} else {
// Log details of the failure
NSLog("Error: %@ %@", error, error.userInfo!)
}
}
}
答案 0 :(得分:1)
object.objectForKey("price")
是解析数据库中的数字类型
那你为什么说这是一个字符串?请记住,as
不会转换任何内容;这是对真相的主张。如果你撒谎,你当然会崩溃。不要说谎!
我认为它是一个NSNumber。如果我是对的,请说as NSNumber
。
由于这个 是一个数字,你不应该希望将它作为字符串存储在arrayDic
中,所以只需将其保留为数字。
(另外,如果arrayDic
是字典,则不应该使用valueForKey:
- 你可以,但这是愚蠢和迂回,可能会产生意想不到的后果。)