Pase y estructuras de acceso usando Objective-C
-
21-08-2019 - |
Pregunta
Quiero saber cómo pasar estructuras a otra función y, posteriormente, acceder a esa estructura en la función llamada. Estoy desarrollando para el iPhone y la razón por la que estoy usando estructuras es por lo que con el tiempo puede pasar datos como estructuras a un servidor que se construyen en C.
Aquí está la estructura:
struct userInfo{
NSString *firstName;
NSString *lastName;
NSString *username;
NSString *email;
NSString *ipAddress;
double latitude;
double longitude;
};
Aquí estoy simplemente ir a buscar algunos datos inputed usuario junto con algunos datos CoreLocation y la dirección IP del iPhone:
- (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];
}
Cuidado de la struct función:
- (void)registerWithServer:(struct userInfo*)myUser {
printf("First name is: %s", myUser.firstName);//error when compiling
}
el compilador lanza este error: request for member 'firstName' in something not a structure or union
. Es que struct fuera de alcance cuando intento acceder a ella en la segunda función?
Solución
Está pasando en un puntero a una estructura. Utilice el -.> Operador, no el punto
myUser->firstName
Otros consejos
No puedo evitar pensar que realmente debería hacer que un objeto propio de Objective-C con propiedades -. Más trabajo, pero luego todo va a comportarse mejor y vivir dentro del ecosistema NSObject