0

私は初心者の問題を抱えています。

GPS 座標に基づいて、iPhone が配置されている場所の郵便番号を特定するために、このメソッドを取得しました。逆ジオコーディング。正しい郵便番号をラベルに書き出すのに問題はないので、私の方法はうまくいきます。

しかし、SMS の作成に使用するメソッド内で使用できる文字列にこの郵便番号を格納する必要があります。

誰でもそれで私を助けることができますか?

ソースコードが必要かどうか教えてください! (現在、私の仕事のコンプに座っていないだけです)

明らかに私は誤解されています.somコードを投稿するべきでした.

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
    NSLog(@"didUpdateToLocation: %@", newLocation);
    CLLocation *currentLocation = newLocation;


    // Reverse Geocoding
    NSLog(@"Resolving the Address");
    [geocoder reverseGeocodeLocation:currentLocation completionHandler:^(NSArray *placemarks, NSError *error) {
        NSLog(@"Found placemarks: %@, error: %@", placemarks, error);
        if (error == nil && [placemarks count] > 0) {
            placemark = [placemarks lastObject];
            **postalCode** = [NSString stringWithFormat:@"%@",
                            placemark.postalCode];
        } else {
            NSLog(@"%@", error.debugDescription);
        }
    } ];

}

ここでは、postalCode という名前の NSString 内に郵便番号を保存しようとしています (「**」で強調表示)。

SMSコンポーザーで再度ロードしようとしました

-(void)displaySMSComposerSheet
{
    CLLocation *currentLocation;


    // Reverse Geocoding
    NSLog(@"Resolving the Address");
    [geocoder reverseGeocodeLocation:currentLocation completionHandler:^(NSArray *placemarks, NSError *error) {
        NSLog(@"Found placemarks: %@, error: %@", placemarks, error);
        if (error == nil && [placemarks count] > 0) {
            placemark = [placemarks lastObject];
            postalCode = [NSString stringWithFormat:@"%@",
                          placemark.postalCode];
        } else {
            NSLog(@"%@", error.debugDescription);
        }
    } ];

    MFMessageComposeViewController *picker = [[MFMessageComposeViewController alloc] init];
    picker.recipients = [NSArray arrayWithObjects:@"1220", nil];
    picker.body = [NSString stringWithFormat:@"Dog %@", (placemark.)postalCode];
    picker.messageComposeDelegate = self;

    [self presentModalViewController:picker animated:YES];

}

SMS ウィンドウにのみ出力されます: Dog (null) そして、私は座標を持っていると確信しています。それらは出力に出力されます。

これが質問をよりよく理解するのに役立つことを願っています

4

3 に答える 3

0

試す

picker.body = [NSString stringWithFormat:@"Dog %@", postalCode];
于 2013-04-05T09:57:46.413 に答える
0
-(void)displaySMSComposerSheet
{
    CLLocation *currentLocation;


    // Reverse Geocoding
    NSLog(@"Resolving the Address");
    [geocoder reverseGeocodeLocation:currentLocation completionHandler:^(NSArray *placemarks, NSError *error) {
        NSLog(@"Found placemarks: %@, error: %@", placemarks, error);
        if (error == nil && [placemarks count] > 0) {
            placemark = [placemarks lastObject];
            postalCode = [NSString stringWithFormat:@"%@",
                          placemark.postalCode];
            [self showMailComposer:postalcode]; // method call
        } else {
            NSLog(@"%@", error.debugDescription);
        }
    } ];



}

-(void)showMailComposer:(NSString *)postalCode{
    MFMessageComposeViewController *picker = [[MFMessageComposeViewController alloc] init];
    picker.recipients = [NSArray arrayWithObjects:@"1220", nil];
    picker.body = [NSString stringWithFormat:@"Dog %@",  postalCode];
    picker.messageComposeDelegate = self;

    [self presentModalViewController:picker animated:YES];
}
于 2013-04-05T11:06:18.403 に答える