Iphone canSendText返回false
我正在尝试通过我当前的应用发送短信Iphone canSendText返回false,iphone,objective-c,ios,Iphone,Objective C,Ios,我正在尝试通过我当前的应用发送短信 if ([NSClassFromString(@"MFMessageComposeViewController") canSendText]) 我尝试了上面的行,但它返回false?我确信我可以通过我的手机发送短信(使用真实的设备进行测试),那么我是否缺少任何设置 所以我试过这个: Class smsClass = (NSClassFromString(@"MFMessageComposeViewController")); if(smsCla
if ([NSClassFromString(@"MFMessageComposeViewController") canSendText])
我尝试了上面的行,但它返回false?我确信我可以通过我的手机发送短信(使用真实的设备进行测试),那么我是否缺少任何设置
所以我试过这个:
Class smsClass = (NSClassFromString(@"MFMessageComposeViewController"));
if(smsClass != nil)
{
if ([smsClass canSendText])
{
[self presentMessageComposeViewController];
}
}
smsClass返回零
非常感谢帮助。根据canSendText,仅适用于iOS 4及以上版本
因此,如果您使用iOS 3运行设备,您的应用程序行为是正常的
为什么要使用NSClassFromString,以下内容应该可以使用(在iOS 4及更多版本上):
试试这个
MFMessageComposeViewController *controller = [[[MFMessageComposeViewController alloc] init] autorelease];
if([MFMessageComposeViewController canSendText])
{
controller.body = @"Hello Test massage";
controller.recipients = [NSArray arrayWithObjects:@"12345678", @"87654321", nil];
controller.messageComposeDelegate = self;
[self presentModalViewController:controller animated:YES];
}
将始终返回false。因为
canSendText
仅适用于类MFMessageComposeViewController
。但是NSClassFromString(@“MFMessageComposeViewController”)
将返回一个类(而不是MFMessageComposeViewController
class)
也许你可以这样试试
Class smsClass = (NSClassFromString(@"MFMessageComposeViewController"));
if(smsClass != nil)
{
if ([(MFMessageComposeViewController *)smsClass canSendText])
{
[self presentMessageComposeViewController];
}
}
或者你可以简单地使用
[MFMessageComposeViewController canSendText];
它正在使用OS version>iOS 4.0,对吗?还要确保MessageUI.framework已导入到project.MFMessageComposeViewController中。删除在.h文件中实现此委托,并且不要忘记写这一行smsClass.MessageComposeDeleteGate=self;顺便说一句,这里不需要使用smsClass。只需使用[MFMessageComposeViewController canSendText]检查它。是的,ACB是正确的,我忘了添加MessageUI.framework:'(不能简单地使用[MFMessageComposeViewController canSendText];否则会出现此错误:架构armv7的未定义符号:“\u OBJC\u CLASS\u$\ u MFMessageComposeViewController”,引用自RegistrationPage中的:objc class ref。o ld:未找到架构armv7的符号clang:错误:链接器命令失败,退出代码为1(使用-v查看调用),我可以隐藏sms屏幕并在后台发送(具有用户权限)把我自己的号码作为发件人?是的,在我把收件人改成我自己的电话号码后,这对我是有效的。
Class smsClass = (NSClassFromString(@"MFMessageComposeViewController"));
if(smsClass != nil)
{
if ([(MFMessageComposeViewController *)smsClass canSendText])
{
[self presentMessageComposeViewController];
}
}
[MFMessageComposeViewController canSendText];