我写了一些代码来将文本添加到iMessage扩展中的Messages.app输入字段。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSLog(@"didSelect called");
NSLog(@"%d", 1);
[[self activeConversation] insertText:@"https://google.com" completionHandler:^(NSError * error) {
NSLog(@"Error happened");
NSLog(@"Error: %@", error);
}];
NSLog(@"%d", 2);
}
奇怪的是,所有正常的日志都在发生。该应用程序将记录" didSelect调用"," 1"和" 2"。但是,邮件 - Google网址 - 未被插入,并且未显示错误日志。所以我真的不知道出了什么问题。我知道我做错了什么?
答案 0 :(得分:1)
解决方案#1
MessagesViewController
向视图控制器发送正确的引用。activeConversation
的值为nil:if ([self activeConversation] != nil) {
[[self activeConversation] insertText:@"Some text" completionHandler:^(NSError * _Nullable error) {
NSLog(@"error: %@", error.localizedDescription);
}];
} else {
NSLog(@"Conversation is nil");
}
解决方案#2
Singleton
分机名称空间中创建iMessage
。MessagesViewController
- (void)viewDidLoad
设置参考中的MSConversation
您的[[Conversation shared] activeConversation] = [self activeConversation];
:[[Conversation shared] activeConversation] insertText: .... ];
print
用于从任何控制器发送消息。