В настоящее время я пытаюсь передать данные из одного ViewController в SMS ViewController, предоставленный Apple (через MFMessageComposeViewController), используя NSUserDefaults.NSUserDefaults удаляет пространство при передаче другому VC
Я успешно передаю имя человека текстовому полю SMS в моем MFMessageComposeViewController, но по какой-то причине пространство между именами и именем человека удаляется (т. Е. Вместо Джона Смита оно появляется в текстовое поле как 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];
}
Прямо здесь: NSMutableString * contactName = [contactsUD objectForKey: @ "contactName"]; NSLog (@ "Контактное лицо:% @", contactName); Вы получаете «Джон Смит»? Также удалите [[NSUserDefaults standardUserDefaults] synchronize]; сделайте это выше, чем [self launchMessengerContacts]; –
FYI - это неуместное использование NSUserDefaults. – rmaddy
@AndrewVeresov Да, я получаю консоль для печати «Контактное имя: Джон Смит» Любые идеи о том, почему он не передает эту ценность? – a2b123