【发布时间】:2016-04-19 12:11:39
【问题描述】:
您好,我有 NSUserDefaults 的扩展程序,我需要使用 Obj-C 访问它。
扩展中的结构
public struct UserDefaultsEntry {
let key: String
func get() -> AnyObject? {
return NSUserDefaults.standardUserDefaults().objectForKey(key)
}
func set(value: AnyObject) {
switch value {
case is Bool:
NSUserDefaults.standardUserDefaults().setBool(value as! Bool, forKey: key)
break
case is String:
NSUserDefaults.standardUserDefaults().setObject(value as! String, forKey: key)
break
case is NSData:
NSUserDefaults.standardUserDefaults().setObject(value as! NSData, forKey: key)
break
default:
break
}
}
func remove() {
NSUserDefaults.standardUserDefaults().removeObjectForKey(key)
}
}
同一扩展类中的静态变量
public static let testDefault = UserDefaultsEntry(key: "testDefault")
这样我就可以在 swift 类中正常调用它了
let string = "test"
NSUserDefaults.testDefault.set(string)
但未能在 Obj-C 类中调用它。那我怎么称呼它?提前致谢
编辑: 尝试使用
[NSUserDefaults.testDefault get];
但我得到了
在对象类型“NSUserDefaults”上找不到属性“testDefault”
【问题讨论】:
标签: ios objective-c xcode swift