-3

ボタンが押されたときに number という名前の変数を取得する void 関数があります。ただし、その変数を使用したい別の関数があります。

ここにコードがあるので、私が何を意味するかを見ることができます。

-(void)pictureListMainTableCell:(PictureListMainTableCell *)cell wantsToCallNumber:(NSString *)number
{
    if([MFMessageComposeViewController canSendText])
    {
        MFMessageComposeViewController *messageComposer =
        [[MFMessageComposeViewController alloc] init];
        NSString *message = (@"%@", [self deviceLocation]);
        [messageComposer setBody:message];
        messageComposer.recipients = [NSArray arrayWithObjects:number  , nil];
        messageComposer.messageComposeDelegate = self;



        [self presentViewController:messageComposer animated:YES completion:nil];

        NSLog(@"Texting telephone number [%@]", messageComposer);



    }






}

- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result {

    switch (result) {
        case MessageComposeResultCancelled:
            NSLog(@"Cancelled");
            break;
        case MessageComposeResultFailed:
            NSLog(@"Failed");
            break;
        default:
            break;
    }

    if (MessageComposeResultSent) {
        NSString *urlString = [NSString stringWithFormat:@"telprompt://%@", number];
        NSLog(@"calling telephone number [%@]", number);
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]];
    }

    [self dismissModalViewControllerAnimated:YES];
}

だから私が望むのは、2 番目の void で number という名前の変数を使用できるようにすることです。どんな助けでも大歓迎です。

4

1 に答える 1

0

私があなたのコードを正しく理解していれば、作成中のメッセージが送信されるとすぐに誰か/何かを自動的に呼び出す必要があります。

これを行う最も簡単な方法は、インスタンス変数またはプロパティを宣言することです。例えば:

@property (strong) NSString * telephoneNumber;

次に、次の方法で最初の関数に設定できます。

self.telephoneNumber = number;

そして、次の方法で 2 番目の関数から呼び出します。

NSString *urlString = [NSString stringWithFormat:@"telprompt://%@", self.telephoneNumber];

ところで、変数とパラメーターにもう少し良い名前を付ければ、役に立つかもしれません。「number」という名前の NSString オブジェクトは、あなた (または後であなたのコードを見ている他の誰か) を混乱させて、NSNumber オブジェクトを見ていると思い込ませる可能性があります。

于 2013-09-16T20:52:17.380 に答える