我目前正在尝试使用NSUserDefaults将数据从一个ViewController传递到Apple提供的SMS ViewController(通过MFMessageComposeViewController)。
我成功地将此人的姓名传递到我的MFMessageComposeViewController中的SMS文本字段,但由于某种原因,人名第一名和姓名之间的空格被删除(即,而不是John Smith,它显示在文本字段中作为johsmith)。
我已经注销了我的所有值,并且它们显示在名字和姓氏之间确实存在空格(即打印出John Smith)
以下是我的代码,希望其他人经历过这个奇怪的问题,或者可以指出我正确的方向。感谢!!!
-(void)launchMessengerContacts {
if(![MFMessageComposeViewController canSendText]) {
MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init];
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Error" message:@"Your device doesn't support SMS!" preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *confirmAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
}];
[alertController addAction:confirmAction];
[self presentViewController:alertController animated:YES completion:nil];
return;
}
NSString *message = @"Hey! I'm inviting you to play this game!";
MFMessageComposeViewController *messageController = [[MFMessageComposeViewController alloc] init];
messageController.messageComposeDelegate = self;
[messageController setBody:message];
NSUserDefaults *contactsUD = [NSUserDefaults standardUserDefaults];
[[NSUserDefaults standardUserDefaults] synchronize];
NSMutableString *contactName = [contactsUD objectForKey:@"contactName"];
NSLog(@"Contact Name: %@", contactName);
messageController.recipients = [NSArray arrayWithObjects:contactName, nil];
NSLog(@"Message Controller Recs: %@", messageController.recipients);
[self presentViewController:messageController animated:YES completion:nil];
}
在我的didselectrowatindexpath中:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:
(NSIndexPath *)indexPath {
AddressBookTableViewCell *cell = [tableView
cellForRowAtIndexPath:indexPath];
NSUserDefaults *contactUD = [NSUserDefaults standardUserDefaults];
[contactUD setObject:cell.contactLabel.text forKey:@"contactName"];
NSLog(@"cell : %@", cell.contactLabel.text);
NSLog(@"NSUserDefaults is %@", contactUD);
NSLog(@"User Defaults Contact Name: %@", [contactUD
objectForKey:@"contactName"]);
[self launchMessengerContacts];
}
答案 0 :(得分:0)
来自MFMessageComposeViewController
文档:
数组中的每个字符串都应包含电话号码 预定的收件人。
所以你需要添加电话号码,而不是名字。