2017-09-25 5 views
1

기본적으로 버튼을 누르면이 튜토리얼에서 볼 수있는 것처럼 대화에 메시지가 삽입되는 매우 간단한 iMessage 응용 프로그램을 만들려고합니다. 내가 가지고있는 문제는 버튼을 눌렀을 때 함수가 실행되지만 아무 것도 결과로 발생하지 않으며 이것이 왜 그런지에 대해 정말로 확신 할 수 없다는 것입니다. 나는 잠시 동안이 문제에 대한 해결책을 찾는 데 어려움을 겪어 왔고 누군가가 내 코드를 빠르게 살펴보고 잘못되었을 때 또는 내가 누락 된 부분을 지적 할만큼 충분히 친절한 사람이라면 정말로 감사 할 것입니다. . 주제에 대한 도움을 주시면 대단히 감사하겠습니다. 감사합니다.메시지 삽입, iMessage 응용 프로그램 swift 3

@IBAction func funcSend(_ sender: Any) { 

    let conversation = activeConversation 
    let session = conversation?.selectedMessage?.session 

    let layout = MSMessageTemplateLayout() 
    layout.caption = "Hi there" 

    var components = URLComponents() 
    let queryItem = URLQueryItem(name: "key", value: "value") 
    components.queryItems = [queryItem] 

    let message = MSMessage(session: session!) 
    message.layout = layout 
    message.url = components.url 
    message.summaryText = "Sent hi there message" 

    conversation?.insert(message) 

} 

답변

1

그것은 바로 보이는, 가) (끝을 기각 전화하려고?

여기에 작동 코드의 저

@IBAction func onSend(_ sender: Any) { 
    print("sending...") 
    guard let conversation = activeConversation else { fatalError("Expected a conversation") } 
    guard let message = composeMessage(session: conversation.selectedMessage?.session) 
     else { return } 

    // Add the message to the conversation. 
    conversation.insert(message) { error in 
     if let error = error { 
      print(error) 
     } 
    } 
    // This one 
    dismiss() 
} 

을 어떻게 내가 솔루션에 대한 감사가 훌륭하게 작동 메시지

// MARK: Messaging 
func composeMessage(session: MSSession? = nil) -> MSMessage? { 
    let layout = MSMessageTemplateLayout() 
    var components = URLComponents() 
    let caption = URLQueryItem(name: "caption", value: self.melody) 
    let decodedMelody = URLQueryItem(name: "melody", value: self.melody) 

    components.queryItems = [caption, decodedMelody] 

    let message = MSMessage(session: session ?? MSSession()) 
    layout.image = self.screenImage.image 

    layout.caption = "Melody built with haptic and vibro." 
    layout.subcaption = "sent via iVibrio" 
    message.summaryText = "something summary" 

    if let conversation = activeConversation, 
     let msg = conversation.selectedMessage{ 

     if msg.senderParticipantIdentifier == conversation.localParticipantIdentifier { 
      layout.caption = "$\(msg.senderParticipantIdentifier.uuidString) My msg" 
     } 
     else{ 
      layout.caption = "$\(msg.senderParticipantIdentifier.uuidString) Edited msg" 
     } 
    } 

    message.url = components.url! 
    message.layout = layout 

    return message 
} 

Link to the complete example/code

+0

를 만들 수 있어요! – imjonu

관련 문제