構造体を別の関数に渡し、その後、呼び出された関数でその構造体にアクセスする方法を知りたいです。私はiPhone用に開発していますが、構造体を使用している理由は、最終的にデータを構造体としてCで構築されているサーバーに渡すことができるようにするためです。
構造は次のとおりです。
struct userInfo{
NSString *firstName;
NSString *lastName;
NSString *username;
NSString *email;
NSString *ipAddress;
double latitude;
double longitude;
};
ここでは、CoreLocationデータとiPhoneのIPアドレスとともに、ユーザーが入力したデータを取得しています。
- (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];
}
構造体を処理する関数:
- (void)registerWithServer:(struct userInfo*)myUser {
printf("First name is: %s", myUser.firstName);//error when compiling
}
コンパイラは次のエラーをスローします:request for member 'firstName' in something not a structure or union
。2番目の関数でその構造体にアクセスしようとすると、その構造体はスコープ外になりますか?