訪問類的實例,我在UserClass.swift
像這樣定義一個用戶類:如何在斯威夫特
class User {
var id:Int
var name:String
var phone:String
var email:String
init(id:Int, name:String, phone:String, email:String){
self.id = id
self.name = name
self.phone = phone
self.email = email
}
}
在我ProfileViewController
我打電話叫getUserData
上viewDidLoad
的方法。
class ProfileViewController: UIViewController {
@IBOutlet weak var userNameLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
getUserData { myUser in
self.userNameLabel.text = myUser.name
}
}
getUserData
坪我的API,然後實例化和實例User
類的。
func getUserData(completionHandler:(User)->()) {
Alamofire.request(.GET, "apiEndPoint")
.responseJSON { response in
if let value: AnyObject = response.result.value {
let userData = JSON(value)
let userName = userData["name"].string!
let userId = userData["id"].int!
let userPhone = userData["phone"].string!
let userEmail = userData["email"].string!
let myUser = User(id:userId, name:userName, phone:userPhone, email:userEmail)
print("user: \(myUser.name)")
completionHandler(myUser)
}
}
}
然後我和一個回調傳遞實例的ProfileViewController
,這樣我就可以更新標籤。這很好。
問題是,現在我想查看User
實例myUser
的另一個屬性,在回調之外的另一個地方。最後,我想獲得用戶的ID,但現在我只是想在所有訪問實例,所以我在更新與該用戶的姓名標籤再次尋找:
class MyActivitiesViewController: UIViewController {
@IBOutlet weak var myActTempLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
self.myActTempLabel.text = myUser.name
}
}
這是給我的錯誤Use of unresolved identifier 'myUser'
。如何訪問我已創建的用戶實例?