Parse platform 在“本地数据存储”一章中,选择fromPin和fromlocaldatastore

Parse platform 在“本地数据存储”一章中,选择fromPin和fromlocaldatastore,parse-platform,Parse Platform,就像标题一样,我想问一下两者之间的区别 fromPin() 及 顺便说一下,Pin和数据存储是两个术语。他们两个有什么不同 谢谢。有一点不同,您可以从文档和解析库的反编译代码中看到(好的,最后一个比较复杂…) 文件说: fromLocalDatastore():将此查询的源更改为所有固定对象。 fromPin():将此查询的源更改为固定对象的默认组。 在这里,您可以看到,在解析时,有一种方法可以从整个固定数据集中获取所有对象,无需过滤器,也可以从所谓的“默认组”中获取。该组在解析代码中使用以下

就像标题一样,我想问一下两者之间的区别

fromPin()

顺便说一下,Pin和数据存储是两个术语。他们两个有什么不同


谢谢。

有一点不同,您可以从文档和解析库的反编译代码中看到(好的,最后一个比较复杂…)

文件说:

fromLocalDatastore():将此查询的源更改为所有固定对象。

fromPin():将此查询的源更改为固定对象的默认组。

在这里,您可以看到,在解析时,有一种方法可以从整个固定数据集中获取所有对象,无需过滤器,也可以从所谓的“默认组”中获取。该组在解析代码中使用以下字符串定义:
\u default
(o'rly?)

当您使用pinInBackground固定某物时,您可以使用不同的方式:

pinInBackground()[无参数]:将对象及其指向的每个对象存储在本地数据存储中

这是文档中说的,但是如果你看代码,你会发现pin实际上会被执行到<代码>\默认值组

public Task<Void> pinInBackground() {
    return pinAllInBackground("_default", Arrays.asList(new ParseObject[] { this }));
}
公共任务pinInBackground(){
返回pinAllInBackground(“_default”,Arrays.asList(newparseobject[]{this}));
}
另一方面,您可以随时调用
pinInBackground(字符串组)
来指定精确的组

结论:每次你固定一个物体,它一定会固定在一个特定的组上。如果未在参数中指定任何内容,则该组为“\u default”。如果将对象固定到自定义组“G”,则使用
fromPin()
的查询将找不到它!因为你没有把它放在“_default”上,而是放在“G”上

相反,使用
fromLocalDatastore()
,查询将保证找到您的对象,因为它将搜索到“\u default”、“G”等等

public Task<Void> pinInBackground() {
    return pinAllInBackground("_default", Arrays.asList(new ParseObject[] { this }));
}