我有一个名为"MyViewController"的视图控制器,我想将一些值保存到用户默认设置中。作为键,我想使用类名“MyViewController”并追加一些字符串。在Swift中是否可以从类名获取字符串?谢谢任何帮助 :)
我有一个叫做'MyViewController'的ViewController,我想将一些值保存到用户默认设置中。我想使用类名"MyViewController"并追加一些字符串作为键。在Swift中,是否可以从类名中获取字符串?感谢任何帮助 :)我有一个名为"MyViewController"的视图控制器,我想将一些值保存到用户默认设置中。作为键,我想使用类名“MyViewController”并追加一些字符串。在Swift中是否可以从类名获取字符串?谢谢任何帮助 :)
我有一个叫做'MyViewController'的ViewController,我想将一些值保存到用户默认设置中。我想使用类名"MyViewController"并追加一些字符串作为键。在Swift中,是否可以从类名中获取字符串?感谢任何帮助 :)也许有更好的方法,但据我所知,您可以通过classForCoder()(仅适用于NSObject子类)获取类名。从那里,您可以使用NSStringFromClass将类名转换为NSString。唯一的问题是名称通常会被破坏,例如“__lldb_expr_690.MyViewController”。您可以通过显式设置名称来解决此问题,例如:
@objc(MyViewController) class MyViewController: UIViewController {
func aMethod() {
let defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject("Some Object", forKey: NSStringFromClass(self.classForCoder))
defaults.synchronize()
// Has set "Some Object" for key "MyViewController"
}
}
class MyOwnClass {
}
var myVar1 = NSString()
var myVar2 = MyOwnClass()
println(_stdlib_getTypeName(myVar1)) // Gives "NSString"
println(_stdlib_getTypeName(myVar2)) // Gives "_TtC15__lldb_expr_26410MyOwnClass"
_TtC15_lldb_expr_26410
在我下一次启动程序时会发生变化,这样就不太好了,如果它不变就太好了^^ - borchero