-3

我有一个 void 函数,当按下按钮时会获取一个名为 number 的变量。但是我有另一个函数,我想在其中使用该变量。

这是代码,因此您可以了解我的意思。

-(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];
}

所以我想要的是能够在第二个 void 中使用名为 number 的变量。任何帮助将不胜感激。

4

1 回答 1

0

如果我正确理解您的代码,您希望在发送正在撰写的消息后立即自动呼叫某人/某事。

最简单的方法是声明一个实例变量或属性。例如:

@property (strong) NSString * telephoneNumber;

然后你可以通过以下方式在第一个函数中设置它:

self.telephoneNumber = number;

并通过以下方式从第二个函数调用它:

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

顺便说一句,如果您更好地命名变量和参数,您可能会发现它很有用。一个名为“number”的 NSString 对象可能会让您(或稍后查看您的代码的其他人)误以为他们正在查看 NSNumber 对象。

于 2013-09-16T20:52:17.380 回答