2014-09-10 39 views
0

我正在爲我的iOS應用程序使用雲代碼功能。我打電話的雲功能與此代碼...錯誤:TypeError:對象沒有設置方法

var moment = require("moment"); 

Parse.Cloud.define("registerActivity", function(request, response) { 
    var user = request.user; 
    user.set("lastActive", new Date()); 
    user.save().then(function (user) { 
     response.success(); 
    }, function (error) { 
     console.log(error); 
     response.error(error); 
    }); 
}); 

,並從iOS的我這樣稱呼它......

[PFCloud callFunction:@"registerActivity" withParameters:@{}]; 

爲什麼我得到這個錯誤?

Error: TypeError: Object has no method 'set' 
+0

你的'request.user'對象是否有'set'方法?或者你只是試圖'user.lastActive = new Date()' – 2014-09-10 21:15:23

+0

我不知道。如果我不必將它用於雲代碼,我就不會使用這個JavaScript。我對JS所做的一切只有一半的把握。那麼它有一套方法嗎?這應該。在iOS中,您只需執行[[PFUser currentUser] setObject:[NSDate date] forKey:@「lastActive」];'。我如何用JS做同樣的事情並且不會出錯? – 2014-09-11 17:29:30

回答

1

您不一定要通過雲功能傳遞解析對象,並期望它們保持解析對象。更好的解決方案是傳遞對象ID,然後創建一個指向用戶對象的指針,並將該ID設置爲它。然後更新並保存:

var moment = require("moment"); 

Parse.Cloud.define("registerActivity", function(request, response) { 
    var user = new Parse.User() 
    user.id = request.userId; 
    user.set("lastActive", new Date()); 
    user.save().then(function (user) { 
     response.success(); 
    }, function (error) { 
     console.log(error); 
     response.error(error); 
    }); 
}); 
+0

哈哈你是對的。這就是我在一週前採取的行動,它的功能就像一個魅力。所以你是對的,只是有點晚了。但是,你爲了嘗試而得到一個笑臉! – 2014-09-19 20:51:03

+0

謝謝!最好在這裏得到答案,它可以幫助其他人解決同樣的問題。 – 2014-09-19 20:53:44

+0

您能否詳細說明爲什麼我們不能「期望它們保持解析對象」?我現在遇到了這個問題幾次,但我找不到任何理由爲什麼這樣,所以我不知道我需要注意什麼。 – 2015-02-07 23:14:30

相關問題