“文件”应用中的工作集枚举器(“最近”选项卡)有问题。我为Folders实现了一个有效的枚举器,它运行enumerateItems(当我移至UI中的文件夹时用于观察者方法,一切正常。 我也有一个用于工作集的枚举器,但是它没有创建和枚举任何东西。
List<Task<DocumentSnapshot>> tasks = new ArrayList<>();
for (String uid: uidList) {
Task<DocumentSnapshot> documentSnapshotTask = users.whereEqualTo(Consts.UID, uid).get();
tasks.add(documentSnapshotTas);
}
Tasks.whenAllSuccess(tasks).addOnSuccessListener(new OnSuccessListener<List<Object>>() {
@Override
public void onSuccess(List<Object> list) {
//Do what you need to do with your users list
for (Object object : list) {
FsUser fsUser = ((DocumentSnapshot) object).toObject(TeacherPojo.class);
Log.d("TAG", fsUser.getName());
}
}
});
我正在尝试使用信号在startProvidingItem方法中调用工作集枚举器,但是它不起作用。
override func enumerator(for containerItemIdentifier: NSFileProviderItemIdentifier) throws -> NSFileProviderEnumerator {
let maybeEnumerator: NSFileProviderEnumerator?
if (containerItemIdentifier == NSFileProviderItemIdentifier.rootContainer) {
let directory = repository.directory(for: containerItemIdentifier)!
maybeEnumerator = FileProviderFolderEnumerator()
} else if (containerItemIdentifier == NSFileProviderItemIdentifier.workingSet) {
maybeEnumerator = FileProviderWorkingSetEnumerator() // not called
} else {
_ = repository.item(for: containerItemIdentifier)
if repository.isDirectory(at: containerItemIdentifier) {
let directory = repository.directory(for: containerItemIdentifier)!
maybeEnumerator = FileProviderFolderEnumerator() // works fine
} else {
maybeEnumerator = FileProviderItemEnumerator()
}
}
guard let enumerator = maybeEnumerator else {
throw NSError(domain: NSCocoaErrorDomain, code: NSFeatureUnsupportedError, userInfo:[:])
}
return enumerator
}
当我在“文件”应用中打开“最近记录”选项卡时,FileProviderWorkingSetEnumerator是否自动初始化?我应该直接通过FileExtension调用它吗?
谢谢!
答案 0 :(得分:0)
工作集枚举器的工作方式与您的想法不同。 文件提供程序扩展名将在后台枚举工作集,甚至在您打开“文件”应用程序之前。 因此,您需要离线准备工作集数据。 WWDC 2017 document可能会有帮助。