我有一个故事板,从登录页面开始。我有一个像这样的User类
class User {
// Properties
var firmCode : String
var firmId : String
var userId : String
// Default Initializer
init() {
self.firmCode = ""
self.firmId = ""
self.userId = ""
}
// Defult Initializer with prams
init(firmCode: String, firmId: String, userId: String) {
self.firmCode = firmCode
self.firmId = firmId
self.userId = userId
}
}
我正在登录页面中生成一些值,并且可以使用这些值创建User对象。
现在,我想使该对象成为全局对象,并在所有场景中使用该用户对象。
如何将这个物体传递到其他场景?例如,我想将此值与对象一起传递给这样的嵌入式静态表视图控制器
注意:嵌入控制器有一个标签栏控制器有关系吗?我想我需要使用我的委托文件?
编辑:
现在,我创建了这样的全局对象:
// test value
let firmId = "Company Id"
// Creating user object without user class declaration
NSUserDefaults.standardUserDefaults().setObject(firmId, forKey: "testFirmId")
并试图让我的对象是这样的:
// Creating user variable in other scene by globally
let getValue : AnyObject? = NSUserDefaults.standardUserDefaults().objectForKey("testFirmId")
// checking
println(getValue!)
并完成,返回我在Termanal上的价值。一切工作到此为止。
But now the value return to me as AnyObject, I need the convert it String to apply like this:
someLabel.text = getValue!
You can use NSUserDefaults
for that like you can store your object this way:
NSUserDefaults.standardUserDefaults().setObject(YourObject, forKey: "YouKey")
After that you can access it in any scene like:
let yourObject: AnyObject? = NSUserDefaults.standardUserDefaults().objectForKey("YouKey")
Hope It will help you.
EDIT:
NSUserDefaults
is limited in the types it can handle: NSData
, NSString
, NSNumber
, NSDate
, NSArray
, and NSDictionary
. Thus no Swift objects or structs can be saved.
From the Apple NSUserDefaults
Docs:
A default object must be a property list, that is, an instance of (or for collections a combination of instances of): NSData, NSString, NSNumber, NSDate, NSArray, or NSDictionary. If you want to store any other type of object, you should typically archive it to create an instance of NSData.
如果正在使用,NSUserDefaults
则可以直接存储实例,如下所示:
NSUserDefaults.standardUserDefaults().setObject(test, forKey: "firmCode")
NSUserDefaults.standardUserDefaults().setObject(test, forKey: "firmId")
NSUserDefaults.standardUserDefaults().setObject(test, forKey: "userId")
您不需要为此的模型类。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句