我编写了一些代码,将文本添加到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: .... ];
用于从任何控制器发送消息。

10-07 18:37