无法在 Swift 2 中将 AnyObject(可选)转换为字符串
Cant convert AnyObject(Optional) to String in Swift2
我卡在这段代码上了!我想将 AnyObject 转换为 String 最好的方法是什么?
在下面这个小代码片段中,我尝试将 Realm 查询的结果转换为字符串。但最后我无法删除可选。看看:
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
有人可以帮我吗?
谢谢
迈克尔
你可以试试
let name = Object.valueForKey("name").stringValue!
print(name) //Should print: Englisch
不知道这是否适合您。但我猜应该是这样。
您的问题是名称 属性 的类型为 NSMutableArray
(错误消息中的 __NSArrayM
),因此您应该将其转换为 [String]
.
答案如下:
let name = Object.valueForKey("name") as! [String]
let newName = name.first!
print(newName)
这不是很优雅,但很管用 ;-)
抱歉,我还不能投票。但是当我获得 15 个声望时,我的投票将变为 public
我卡在这段代码上了!我想将 AnyObject 转换为 String 最好的方法是什么?
在下面这个小代码片段中,我尝试将 Realm 查询的结果转换为字符串。但最后我无法删除可选。看看:
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
有人可以帮我吗?
谢谢
迈克尔
你可以试试
let name = Object.valueForKey("name").stringValue!
print(name) //Should print: Englisch
不知道这是否适合您。但我猜应该是这样。
您的问题是名称 属性 的类型为 NSMutableArray
(错误消息中的 __NSArrayM
),因此您应该将其转换为 [String]
.
答案如下:
let name = Object.valueForKey("name") as! [String]
let newName = name.first!
print(newName)
这不是很优雅,但很管用 ;-)
抱歉,我还不能投票。但是当我获得 15 个声望时,我的投票将变为 public