我坚持这个代码!我想将AnyObject转换为String,最好的方法是什么?
在下面的这个小代码片段中,我尝试将Realm查询的结果转换为String。但最后我无法删除Optional。看看:
print(Object)
// Print:
//Results<Subject> (
// [0] Subject {
// id = 10;
// name = Englisch;
// short = Eng;
// mainSubject = 1;
//}
let name = Object.valueForKey("name")
print(name)
// Print:
//Optional((
// Englisch
//))
let newname = name as! String
// Here I try to convert the AnyObject from above to a Swift-String but this don't work!
// Error: Could not cast value of type '__NSArrayM' (0x7fff7db48c18) to 'NSString' (0x7fff7e4ed268).
print(newname)
// Will never be executed
有人能帮助我吗?
由于
迈克尔
答案 0 :(得分:3)
以下是答案:
let name = Object.valueForKey("name") as! [String]
let newName = name.first!
print(newName)
这不优雅但有效; - )
抱歉我还不能投票。但是当我获得15点声望时,我的投票将成为公开的
答案 1 :(得分:1)
你可以尝试
let name = Object.valueForKey("name").stringValue!
print(name) //Should print: Englisch
不知道这是否适合你。但我想它应该。
答案 2 :(得分:1)
您的问题是名称属性的类型为NSMutableArray
(错误消息中为__NSArrayM
),因此您应将其转换为[String]
。