Passez et structures d'accès à l'aide objective-c
-
21-08-2019 - |
Question
Je veux savoir comment passer des structures à une autre fonction et accéder à la suite de cette structure dans la fonction appelée. Je développe pour l'iPhone et la raison pour laquelle j'utilise struct est pour que je puisse éventuellement transmettre des données en tant que struct à un serveur en cours de construction en C.
Voici la structure:
struct userInfo{
NSString *firstName;
NSString *lastName;
NSString *username;
NSString *email;
NSString *ipAddress;
double latitude;
double longitude;
};
Ici, je suis tout simplement aller chercher des données utilisateur inputed ainsi que certaines données CoreLocation et IP de l'iPhone Adresse:
- (IBAction)joinButton {
struct userInfo localUser;
localUser.firstName = firstName.text;
localUser.lastName = lastName.text;
localUser.username = username.text;
localUser.email = emailAddress.text;
localUser.ipAddress = localIPAddress.text;
localUser.latitude = currentLocation.coordinate.latitude;
localUser.longitude = currentLocation.coordinate.longitude;
[myNetworkConnection registerWithServer:&localUser];
}
fonction de gestion du struct:
- (void)registerWithServer:(struct userInfo*)myUser {
printf("First name is: %s", myUser.firstName);//error when compiling
}
complier jette cette erreur: request for member 'firstName' in something not a structure or union
. Est-ce que struct hors de portée lorsque je tente d'y accéder à la seconde fonction?
La solution
Vous passez dans un pointeur vers une struct. Utilisez le -.> Opérateur, pas le point
myUser->firstName
Autres conseils
Je ne peux que penser que vous devriez vraiment faire un bon objet que Objective-C avec des propriétés -. Plus de travail, mais il va tous se comportent mieux et à vivre dans l'écosystème NSObject