2016-12-30 2 views
1

만들려고하는 메시지 확장 프로그램에 문제가 있습니다. 대화에 텍스트를 삽입하려고 할 때마다 아무 일도 일어나지 않습니다.iMessage 앱이 활성 대화에 메시지를 삽입하지 않습니다.

import UIKit 
import Messages 

class MessagesViewController: MSMessagesAppViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     let sendButton = UIButton(type: UIButtonType.custom) 
     sendButton.frame = CGRect(x: view.frame.midX, y: view.frame.midY, width: 100, height: 50) 
     sendButton.setTitle("Send", for: UIControlState.normal) 
     sendButton.addTarget(self, action: #selector(sendButtonTapped(sender:)), for: UIControlEvents.touchUpInside) 
     self.view.addSubview(sendButton) 

} 



    func sendButtonTapped(sender: UIButton!){ 

     let layout = MSMessageTemplateLayout() 
     layout.caption = "My Survey" 
     layout.image = UIImage(named: "myImage") 

     let message = MSMessage() 
     message.layout = layout 

     self.activeConversation?.insert(message, completionHandler: nil) 

    } 
} 

을 내가 아무 일도 발생하지 않습니다이 코드를 사용하여 실행할 때마다 : 이것은 내가 사용하는 것이다. 이상한 부분은 self.activeConversation?self.activeConversation!으로 변경하면 앱이 다운된다는 것입니다. 내가 대화 중이기 때문에 응용 프로그램이로드되어서 왜 이런 일이 발생하는지 이해할 수 없습니다.

+0

activeConversarion이 전무하고 당신이 그것을 랩을 해제하려고하기 때문에 아마 충돌한다. – mat

+0

@mat 그러나 왜 그것이 0이 될까요? 앱이로드되고 iMessage의 대화에 있습니다. –

+1

activeConversation이란 무엇입니까? 게시하는 코드로 충돌이 어디서 발생했는지 파악할 수 없습니다. 콘솔에 오류가 있습니까? – mat

답변

0

시도해 볼 수 있습니까?

sendButtonTapped FUNC (보낸 사람 :!있는 UIButton) {

guard let conversation = activeConversation else { fatalError("Expected a conversation") } 

     let session = conversation.selectedMessage?.session ?? MSSession() 

     let message = MSMessage(session: session) 

     let layout = MSMessageTemplateLayout() 
     layout.image = createImageForMessage(value: GlobalData.sharedManager.cardUrl) 
     layout.caption = "Caption" 
     layout.imageTitle = GlobalData.sharedManager.cardTitle 
     layout.imageSubtitle = "Image subtitle" 
     layout.trailingCaption = "Trailing caption" 
     layout.subcaption = "Subcaption" 
     layout.trailingSubcaption = "Trailing subcaption" 
     message.layout = layout 

     conversation.insert(message) {error in 
        // empty for now 
       } 
}}