我编写了一些代码,将文本添加到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网址-未插入,并且未显示错误日志。所以我真的不知道出什么问题了。知道我做错了什么吗?
最佳答案
解决方案1
将正确的引用从MessagesViewController
发送到视图控制器。
检查activeConversation
值是否为零:
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: .... ];
用于从任何控制器发送消息。