Ich versuche, ein Struct zu verwenden, um einige Variablen zu übergeben, die ich von einer Facebook Graph Anfrage wie E-Mail, Name, Geschlecht, etc. Ich habe das Struct ('fbDemographics ') und die Variablen in' ViewController ', aber ich erhalte einen Fehler, wenn ich versuche, die Struktur und eine der Variablen in' SecondViewController 'aufzurufen (Typ' ViewController 'hat kein Mitglied' fbDemographics '). Ich habe Struct zuvor noch nie verwendet, also habe ich ein wenig verwirrt, warum ich diesen Fehler bekomme. Danke für irgendwelche Gedanken. Der Code für beide View-Controller ist unten:Verwenden von Struct um eine Variable zu übergeben Swift
class ViewController: UIViewController, FBSDKLoginButtonDelegate {
override func viewDidLoad() {
super.viewDidLoad()
struct fbDemographics {
static var relationship_status: String?
static var gender: String?
static var user_education_history: String?
static var user_location: String?
static var email: String?
static var name: String?
}
FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "id, name, relationship_status, gender, user_location, user_education_history, email"]).start(completionHandler: { (connection, result, error) -> Void in
if (error == nil){
//let fbDetails = result as! NSDictionary
//print(fbDetails)
if let userDataDict = result as? NSDictionary {
fbDemographics.gender = userDataDict["gender"] as? String
fbDemographics.email = userDataDict["email"] as? String
fbDemographics.name = userDataDict["name"] as? String
fbDemographics.user_location = userDataDict["user_location"] as? String
fbDemographics.user_education_history = userDataDict["user_education_history"] as? String
fbDemographics.relationship_status = userDataDict["relationship_status"] as? String
let myEducation = fbDemographics.user_education_history
let myEmail = fbDemographics.email
let myGender = fbDemographics.gender
let myName = fbDemographics.name
let myStatus = fbDemographics.relationship_status
let myLocation = fbDemographics.user_location
self.performSegue(withIdentifier: "LoginToHome", sender: (Any).self)
}
}
SECOND-View-Controller
class SecondViewController: UIViewController {
@IBAction func verticalSliderChanged(_ sender: UISlider) {
let currentValue = String(sender.value);
sliderLabel.text = "\(currentValue)"
func viewDidLoad() {
super.viewDidLoad()
***ViewController.fbDemographics.myEmail***
}
}
eine Menge Dinge falsch mit der aktuellen Lösung Es gibt keine. Ich würde nach einigen Tutorials zum Übergeben von Daten zwischen View-Controllern suchen. – nathan
Ich habe viele Tutorials durchgelesen. Ich bekomme einfach keine Variablen, aber ich vermute, dass sie sich immer wieder verstopfen. Danke für einen Blick. –
Ihre Frage enthält viel unnötigen Code. Bitte lösche und behalte nur das Wichtige. – Macabeus