5

構造体を別の関数に渡し、その後、呼び出された関数でその構造体にアクセスする方法を知りたいです。私は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番目の関数でその構造体にアクセスしようとすると、その構造体はスコープ外になりますか?

4

2 に答える 2

7

構造体へのポインタを渡しています。ドットではなく、-> 演算子を使用します。

myUser->firstName
于 2009-06-30T15:54:50.133 に答える
2

プロパティを持つ適切な Objective-C オブジェクトを実際に作成する必要があると思わずにはいられません。より多くの作業が必要ですが、そうすればすべてがより適切に動作し、NSObject エコシステム内で動作するようになります。

于 2009-06-30T16:54:53.090 に答える