Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 应用内短信,预写正文限制为40个字符_Iphone_Cocoa Touch_Ios4_Mfmailcomposeviewcontroller - Fatal编程技术网

Iphone 应用内短信,预写正文限制为40个字符

Iphone 应用内短信,预写正文限制为40个字符,iphone,cocoa-touch,ios4,mfmailcomposeviewcontroller,Iphone,Cocoa Touch,Ios4,Mfmailcomposeviewcontroller,我正在使用MFMessageComposeViewController在应用程序中发送消息 问题: MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init]; if([MFMessageComposeViewController canSendText]) { controller.body = @"This is a sample body which is

我正在使用MFMessageComposeViewController在应用程序中发送消息

问题:

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

     controller.body = @"This is a sample body which is containing more than 40 characters...";
     controller.recipients = phnNumbersArray;
     controller.messageComposeDelegate = self;
     [self.view presentModalViewController:controller animated:YES];
}
[controller release];
当我向非iPhone手机(如Nexus One)发送短信时,短信总是被分成两条或更多条短信

但是,如果我直接从本机消息应用程序发送相同的消息,则消息将在单个消息中传递

然后我最近发现了这一点,实际上正在发生的是消息正文被40个字符分割,我无法理解这种情况

有什么不对劲吗?这有什么办法吗

代码:

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

     controller.body = @"This is a sample body which is containing more than 40 characters...";
     controller.recipients = phnNumbersArray;
     controller.messageComposeDelegate = self;
     [self.view presentModalViewController:controller animated:YES];
}
[controller release];

从未尝试过,但可能有三种解决方法

1) 尝试使用
[nsstringwithformat:@“%@”,myMsgBody]我认为它不起作用/很可能无法解决问题:P

2) 查看是否可以通过以下方式发送
NSUTF8StringEncoding

3) 或者问题出在承运人方面,与您的代码无关


说明:在您的场景中,我看到文本被分解为多个文本。运营商网站的服务器认为您的邮件太长。这意味着太重了,不能马上发送。这基本上意味着它比服务器的容量要多出xxmb。为了减小这个尺寸,我给了你一个编码方式的想法

如果消息正文仅包含一个非ASCII字符,则MFMessageComposeViewController将字符数乘以4。因此,当消息正文达到40个字符时,MFMessageComposeViewController将其计数为160。由于一条移动消息的长度为160,因此它将消息分成多个部分(40个字符加上非ascii字符后,它类似于160个ascii字符,因此网络提供商也将对多条消息收费)。所以,如果您从其他地方复制并粘贴消息正文,请确保它们不包含非ASCII字符。这就是发生在我身上的事