假设我有一个托管对象Word,我想能够打电话
var w = Word.create(context)
Run Code Online (Sandbox Code Playgroud)
所以我定义了以下扩展名:
extension NSManagedObject {
class func create(context:NSManagedObjectContext) -> NSManagedObject {
var classname = NSStringFromClass(self)
var object = NSEntityDescription.insertNewObjectForEntityForName(classname, inManagedObjectContext: context) as NSManagedObject
return object
}
}
Run Code Online (Sandbox Code Playgroud)
但是,它不能按预期工作.
NSStringFromClass 返回jibberish,就像'_TtC8WordApp4Word',我无法弄清楚Swift等价物NSManagedObject什么时候它应该是类似的Self,但放入Self那里就不会编译.有没有办法做我想做的事情?
关于(1):Evan Swick 对损坏的名称有一些看法:http://www.eswick.com/2014/06/inside-swift/
请参阅[此答案][1]以获得更好的解释。
“_TtC8WordApp4Word”:您必须提取该字符串的最后一部分并将其用作参数entityName。
| 归档时间: |
|
| 查看次数: |
1034 次 |
| 最近记录: |