簡體   English   中英

如何使用變量在MFMessageComposeViewController中創建收件人

[英]How to make recipients in MFMessageComposeViewController using a variable

我正在嘗試使用MFMessageComposer為用戶預填充短信。 我正在嘗試使用存儲在可變數組中的變量並使用該數字預先填充電話號碼。 但是,它不適用於接收方部分的以下代碼。 我已經嘗試將其更改為字符串,將其添加到數組中。 手機什么也沒做。

但是,如果我使用@ [@“123132131235”進行手動編號; 對於收件人,它會工作。

- (IBAction)smsSend:(id)sender {

    {
        MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init];
        [controller setMessageComposeDelegate:self];
        if([MFMessageComposeViewController canSendText])
        {

            controller.recipients =  [[NSArray alloc] initWithObjects:[Detail valueForKey:@"Phone"], nil];

            NSLog(@"%@",[Detail valueForKey:@"Phone"]);

            controller.body = @"Hello testing";

            [self presentViewController:controller animated:YES completion:NULL];

        }   else {
            NSLog(@"cannot send");
        }
    }
}

請幫我。

干杯,托尼。

嘗試這個:

- (IBAction)smsSend:(id)sender  
{
 {
    MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init];
    [controller setMessageComposeDelegate:self];
    if([MFMessageComposeViewController canSendText])
    {
        controller.recipients = [NSArray arrayWithObjects:[Detail valueForKey:@"Phone"], nil];

        controller.body = @"Hello testing";

        [self presentViewController:controller animated:YES completion:NULL];
    }   
    else 
    {
        NSLog(@"cannot send");
    }
 }
}  

我所做的唯一改變是收件人數組分配。 收件人數組不是您擁有的數組,因此您應該直接使用對象初始化數組而不是[NSArray alloc]

initWithObject返回一個保留計數為1的數組,即您擁有該數組,並且必須在某個時刻釋放它以防止內存泄漏。

arrayWithObject返回一個自動釋放的數組,因此您不必擔心在不再需要它時釋放它(但如果將它存儲在實例變量中,則應保留它以防止自動釋放池釋放它)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM