Zac*_*Zac 3 android parse-platform
我在Android项目中有一段代码,用于创建ParseObject并将其存储在本地数据存储区中.但是,当我在done()回调方法中检查objectId时,pinInBackground()它返回null.如果我切换pinInBackground()到saveInBackground()然后它工作正常,并给出一个有效的objectId.这是代码:
final ParseObject testObject = new ParseObject("TestObject");
testObject.put("foo", "bar2");
testObject.pinInBackground(new SaveCallback() {
@Override
public void done(ParseException e) {
if (e != null) {
Log.e(TAG, "Failed to pin TestObject: " + e.getMessage());
return;
}
Log.d(TAG, "Added key-value pair to TestObject '" + testObject.getObjectId() + "': 'foo' => 'bar2'");
}
Run Code Online (Sandbox Code Playgroud)
});
日志显示:
Added key-value pair to TestObject 'null': 'foo' => 'bar2'
为什么objectId为null?我是否需要设置它,因为它没有保存到云端?
问题是您没有将对象保存到Parse数据库,只保存到设备,因此尚未实际创建对象.pinInBackground()仅保存到设备,而saveInBackground()保存到Parse数据库,从而实际创建对象.如果使用.saveEventually(),则会固定,直到可以访问网络以保存到Parse数据库.但一般情况下 - 您实际上不会通过保存到您的设备来创建对象,它必须保存到Parse数据库才能创建.
| 归档时间: |
|
| 查看次数: |
1407 次 |
| 最近记录: |