imessage 앱을 구현하고 싶지만 메시지 프레임 워크에 익숙하지 않고 iMessage 앱은 새로운 것이므로 많은 리소스가 필요하지 않습니다. 그래서 저는 WWDC video을 따르고 있고, sample app을 제공하는 사과를 사용하고 있습니다.메시지 확장에서 MSMessage를 보내는 방법은 무엇입니까?
세 가지보기가 있습니다. MessageViewController
은 거의 모든 기능을 처리 한 다음 CreateViewController
과 DetailsViewController
입니다.
DetailsViewController
의
CreateViewController
및 디스플레이에서
MSMessage
를 만들 데이터에 추가하려합니다.
그러나 데이터를 만들려고 할 때 충돌이 발생합니다.
@IBAction func createAction(_ sender: AnyObject) {
//present full screen for create list
self.delegate?.createViewControllerDidSelectAdd(self as! CreateViewControllerDelegate)
}
내가 통과하려고 데이터 유형은 구조체에서 사전입니다 :
struct data {
var title: String!
var date: Date!
var dictionary = ["title" : String(), "Array1" : [String](), "Array2" : [String]() ] as [String : Any]
}
그래서 여기 일이 설정되는 방법입니다; MessagesViewController
class MessagesViewController: MSMessagesAppViewController, {
// MARK: Responsible for create list button
func composeMessage(for data: dataItem) {
let messageCaption = NSLocalizedString("Let's make", comment: "")
let dictionary = data.dictionary
func queryItems(dictionary: [String:String]) -> [URLQueryItem] {
return dictionary.map {
URLQueryItem(name: $0, value: $1)
}
}
var components = URLComponents()
components.queryItems = queryItems(dictionary: dictionary as! [String : String])
let layout = MSMessageTemplateLayout()
layout.image = UIImage(named: "messages-layout-1.png")!
layout.caption = messageCaption
let message = MSMessage()
message.url = components.url!
message.layout = layout
message.accessibilityLabel = messageCaption
guard let conversation = activeConversation else { fatalError("Expected Convo") }
conversation.insert(message) { error in
if let error = error {
print(error)
}
}
}
}
extension MessagesViewController: CreateViewControllerDelegate {
func createViewControllerDidSelectAdd(_ controller: CreateViewControllerDelegate) {
//CreatesNewDataItem
composeMessage(for: dataItem())
}
}
내가 잘못 가고 어디
/**
A delegate protocol for the `CreateViewController` class.
*/
protocol CreateViewControllerDelegate : class {
func createViewControllerDidSelectAdd(_ controller: CreateViewControllerDelegate)
}
class CreateViewController: UIViewController {
static let storyboardIdentifier = "CreateViewController"
weak var delegate: CreateViewControllerDelegate?
@IBAction func create(_ sender: AnyObject) {
//present full screen for create list
self.delegate?.createViewControllerDidSelectAdd(self as! CreateListViewControllerDelegate)
}
}
사람이 보여 주 시겠어요와 나는 MSMessage
을 보낼 수있는 방법을 CreateViewController? 내가 메시지를 보낼 수 있다면 나는 그 메시지를 받아서 다시 보낼 수 있어야한다.
어떤 문제가 될 수있는의 구조체'dataItem' 전달 function'func composeMessage (data : dataItem)'이 비디오 튜토리얼에서와 같이 구조체를 사용하지 않고 문자열 값을 전송했습니다. https://www.youtube.com/watch?v=pe-J7OsQHhI – RileyDev
@RileyDev - 그 것 youtube video helped! – kamyFC