在Void中创建变量是全局变量

时间:2013-09-16 20:47:43

标签: objective-c function sms void

我有一个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的变量。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

如果我正确理解您的代码,您希望在撰写邮件后立即自动调用某人/某事。

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

@property (strong) NSString * telephoneNumber;

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

self.telephoneNumber = number;

通过第二个函数调用它:

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

b.t.w。,如果您更好地命名变量和参数,您可能会发现它很有用。一个名为" number"的NSString对象可能会让你(或其他人在以后查看你的代码时)误以为他们正在查看NSNumber对象。