我目前正试图从当前用户那里获得一个名为“抢劫”的值。我需要将值作为String,但Swift很顽固,并说它“无法将Anyobject转换为String”。 iOS的Parse文档说使用类似的东西:
let score = gameScore["score"] as String
所以,我试试这个:
let lootAmount = user["loot"] as String
BTW'用户'指的是当前用户。当我尝试这个时,它会给出错误,说它不可转换。我尝试在Xcode建议的地方放置'!'和'?',但它只是在没有错误的情况下崩溃了应用程序。
那么,如何将名为“loot”的用户值作为String?
答案 0 :(得分:0)
Loot是NSNumber
而不是NSString
或String
。
您可以将其转换为String
,如下所示:
if let loot = user["loot"] as? NSNumber {
let lootString = "\(loot)"
}
如果您不确定对象的类型,可以使用dynamicType
来询问:
print(user["loot"]!.dynamicType)
//prints `__NSCFNumber.Type`
答案 1 :(得分:-1)
您可能需要向下转发AnyObject
。试试这个:let lootAmount = user["loot"] as? String
或打开您的可选用户,如果您还没有这样做:
let currentUser = PFUser.currentUser()
if let user = currentUser {
let lootAmount = user["loot"] as String
}