NSUserDefaults在传递给另一个VC时删除空间

时间:2016-10-27 15:12:55

标签: ios objective-c nsuserdefaults mfmessagecomposeview

我目前正在尝试使用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];
}

1 个答案:

答案 0 :(得分:0)

来自MFMessageComposeViewController文档:

  

数组中的每个字符串都应包含电话号码   预定的收件人。

所以你需要添加电话号码,而不是名字。