0

私のアプリで。メッセージリストコードの下のコードとして、ユーザーリストとメッセージリストがあります
(解析からリストをロードします)

    @IBOutlet var messageTableView: UITableView!
var messageArray:[String] = ["Lope"]
override func viewDidLoad() {
    super.viewDidLoad()
    retrieveMessages()
    }
func retrieveMessages() {
    var query = PFQuery(className:"Messages")
    var user = PFUser.currentUser()
    query.whereKey("user", equalTo:user.objectId)
    query.findObjectsInBackgroundWithBlock { [weak self]
        (objects:[AnyObject]?, error:NSError?) -> Void in
        println(objects)
        println("succeed")
        let messages = objects
        for object in objects!{
            if let message = object["messageTextColumn"] as? String {
                println(object)
                self?.messageArray.append(message)

            }

        }

         self?.tableView.reloadData()
    }

}






override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return messageArray.count
}


override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("messageCell", forIndexPath: indexPath) as UITableViewCell
        cell.textLabel?.text = messageArray[indexPath.row]
        return cell
} 

メッセージコードを追加 (解析する新しいメッセージを追加)

class addMessageViewController: UIViewController {

@IBOutlet weak var addMessageText: UITextField!
@IBAction func addMessage(sender: AnyObject) {

    var newMessage = addMessageText.text

    let message = PFObject(className: "Messages")
    var user = PFUser.currentUser()
    message["messageTextColumn"] = newMessage
    message["user"] = user.objectId

    message.saveInBackgroundWithBlock {(success: Bool, error: NSError?) -> Void in
        if (success) {
            println("added to Message Class")
           println(user)
            message.saveInBackground()
        } else {
            // Error saving message
        }
    }
}

parse local datastore を使用してこれらのデータをアプリにローカルに保存し、アプリが常にインターネット接続を使用する必要がないようにし、ユーザーがインターネットに接続していない場合でもユーザー リストとメッセージ リストが表示されるようにします。 .

問題は、ローカル データストアのどのメソッドを使用すればよいかわからないことです。ローカル データストア コードを「メッセージ コードの追加」に配置して新しいメッセージを保存し、「メッセージ リスト コード」に配置してローカルでアプリにクエリを実行する必要があります。更新がある場合は、ローカルの「メッセージ リスト」が読み込まれた後に行われます。どんな助けでも大歓迎です。ありがとう!

4

1 に答える 1

0

Parse データ ストアを開始するには、アプリ デリゲートからオプトインする必要があります。

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        // Override point for customization after application launch.


        // Opt in for Parse Local data store *Before Parse.setApplicationId*
        Parse.enableLocalDatastore()

        Parse.setApplicationId("YOUR PARSE APP ID",
            clientKey: "YOUR PARSE CLIENT ID")

       //... other code that you might need when app did finish launching

      return true
 }

後で新しいmessageものを保存するときは、次を使用します。

message.saveEventually()

これはローカル データ ストアに保存され、最終的には (インターネットが利用可能になると) リモート データ ストアに保存されます。

ここから、Parse データ ピンニングの使用にも興味があるかもしれません。詳細については、Parse doc を参照してください。

お役に立てれば

于 2015-07-04T06:01:00.850 に答える