私は現在 を持っていますが、Parse.com ではこのタイプのオブジェクトが許可されないため、Parse.com にJSQMessagesViewController保存するという問題に直面しています。タイプのメッセージを作成して Parse.com に保存できるように、準拠しながら JSQMessagesサブクラス化するクラスを作成する方法を研究しようとしています。PFObjectJSQMessageDataPFObject
以下は私のMessagesクラスです。私の場合、JSQMessagesViewController私は通常電話します
var newMessage = JSQMessage(senderId: "user", displayName: "user", text: "testing chat")
Messagesしかし、今、私のクラスでこれを行うにはどうすればよいでしょうか?
import Foundation
import UIKit
import Parse
class Message: PFObject, PFSubclassing, JSQMessageData {
var senderId_ : String!
var senderDisplayName_ : String!
var date_ : NSDate
var isMediaMessage_ : Bool
var hash_ : Int = 0
var text_ : String
override class func initialize() {
var onceToken : dispatch_once_t = 0;
dispatch_once(&onceToken) {
self.registerSubclass()
}
}
class func parseClassName() -> String {
return "Messages"
}
convenience init(senderId: String?, text: String?) {
self.init(senderId: senderId!, senderDisplayName: senderId, isMediaMessage: false, hash: 0, text: text!)
}
init(senderId: String, senderDisplayName: String?, isMediaMessage: Bool, hash: Int, text: String) {
self.senderId_ = senderId
self.senderDisplayName_ = senderDisplayName
self.date_ = NSDate()
self.isMediaMessage_ = isMediaMessage
self.hash_ = hash
self.text_ = text
super.init()
}
func senderId() -> String? {
return senderId_;
}
func senderDisplayName() -> String? {
return senderDisplayName_;
}
func date() -> NSDate? {
return date_;
}
func isMediaMessage() -> Bool {
return isMediaMessage_;
}
func hash() -> UInt? {
return UInt(hash_);
}
func text() -> String! {
return text_;
}
func messageHash() -> UInt {
return UInt(hash_)
}
}
そして、私の実装ChatViewは次のJSQMessagesViewControllerとおりです。
override func viewDidLoad(){
super.viewDidLoad()
var myObject = PFObject(className: "messages")
var myMessage = Message(senderId: "User", text: "Some text")
var messageArray:NSMutableArray = [myMessage]
myObject["myArray"] = messageArray
myObject.save()
}
現在受信中のエラー
fatal error: use of unimplemented initializer 'init()' for class Message