gpt4 book ai didi

Dart 的 DirectoryEntry.getFile 带有 'options' 参数抛出 NoSuchMethodError

转载 作者:行者123 更新时间:2023-12-01 17:58:16 25 4
gpt4 key购买 nike

我尝试使用一段 dart 代码通过 HTML5 文件 API 创建文件。该代码是在一些 dart 幻灯片上找到的,稍作修复即可在 M1 下运行。我正在使用最新的 Dart SDK 0.2.1.2_r14167。代码很简单(我也尝试使用最后两个参数(回调)设置相同的结果来调用它)。

import 'dart:html';

void main() {
window.webkitRequestFileSystem(LocalWindow.TEMPORARY, 50*1024*1024, (fs) {
fs.root.getFile('log.txt', {"create": true}, null, null);
});
}

它抛出:

Exception: NoSuchMethodError: incorrect number of arguments passed to method named 'getFile' Receiver: Instance of '_DirectoryEntryImpl@0x33cc944a' Tried calling: getFile("log.txt", Instance of 'LinkedHashMapImplementation', null, null) Found: getFile(path, options, successCallback, errorCallback) Stack Trace: #0 Object.noSuchMethod (dart:core-patch:772:3)

是我做错了什么还是 SDK 损坏了?

最佳答案

是的,你基本上做错了,但我不会责怪你,因为即使 IDE 似乎也是按照你的方式做的!

以下是正确的做法:

import 'dart:html';

void main() {
window.webkitRequestFileSystem(LocalWindow.TEMPORARY, 50*1024*1024, (DOMFileSystem fs) {
fs.root.getFile('log.txt', options: {'create': true}, successCallback: (FileEntry e) {
print(e.fullPath);
});
});
}

它使用 named parameters getFile 的签名是:

void getFile(String path, {Map options, EntryCallback successCallback, ErrorCallback errorCallback});

所以,如果你仔细看,第一个参数是强制性的,但其余参数不是强制性的,实际上可以按任何顺序指定,只要你指定它们的名称即可。

如果您仍然感到困惑,请阅读 named parameters .

关于Dart 的 DirectoryEntry.getFile 带有 'options' 参数抛出 NoSuchMethodError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13222906/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com