所以我的问题是为什么let _ = this更快this != nil呢?
例:
这是:
let this : Bool? = true //
let start = DispatchTime.now()
for _ in 0...100000000 {
guard this != nil else { continue }
}
let end = DispatchTime.now()
let nanoTime = end.uptimeNanoseconds - start.uptimeNanoseconds
let timeInterval = Double(nanoTime)
print("Time \(timeInterval)")
// Time 5426559135.0
// Time 5428084767.0
// Time 5327325459.0
Run Code Online (Sandbox Code Playgroud)
慢于:
let this : Bool? = true //
let start = DispatchTime.now()
for _ in 0...100000000 {
guard …Run Code Online (Sandbox Code Playgroud) 我通过以下方式使用flutter_webview包将本地 HTML文件加载到小部件中:
FutureBuilder<String>(
future: LocalLoader().loadLocal(),
builder: (context, snapshot) {
if (snapshot.hasData) {
// return Text("${snapshot.data}");
return WebView(
initialUrl: new Uri.dataFromString(snapshot.data, mimeType: 'text/html').toString(),
javascriptMode: JavascriptMode.unrestricted,
);
} else if (snapshot.hasError) {
return Text("${snapshot.error}");
}
return CircularProgressIndicator();
}
)
Run Code Online (Sandbox Code Playgroud)
它加载 HTML 就好了,但如果标签指向其他资源(例如同一位置的 CSS 文件或其他本地图像),它们将不会显示在 webview 中。
这些资产(CSS 和图像文件)被添加到项目中指定的 HTML 路径(相对本地路径)和pubspec中的位置。
例如,其中一个 HTML 文件包含此元素:
<link rel=stylesheet href=styles/main.css>
Run Code Online (Sandbox Code Playgroud)
当 HTML 文件在 webview 中加载时,CSS 不会反映该页面的样式。如果我在 HTML 中手动添加/编写 CSS(使用<style>元素来定义它),它将正常工作。
关于如何让这些 HTML 加载其本地资源的任何建议?(即使这意味着改变包或它的实现方式)
也贴在这里
有没有一种方法可以通过一些bash命令检索Xcode DerivedData文件夹的路径?
通常是这样的
/Users/ThisGuy/Library/Developer/Xcode/DerivedData/*
Run Code Online (Sandbox Code Playgroud)
我可以用替换
/Users/$USER/Library/Developer/Xcode/DerivedData/*
Run Code Online (Sandbox Code Playgroud)
但这不能保证导出数据位置的路径实际上就是该路径(用户可能已将其更改为相对路径或自定义路径)
我不确定这种错误处理和抽象是否以错误的方式完成。
Future<void> _refresh() {
return Future(() => throw someError)
.catchError((error) {
// maybe do something here
throw abstractedError; //or even the same error
});
Run Code Online (Sandbox Code Playgroud)
能够在另一个地方相应地使用它:
// in a widget/another place
void doSomething() {
_refresh()
.then((_) => bla())
.catchError((error) {
//showSomeAlert() or handleSomething()
});
}
Run Code Online (Sandbox Code Playgroud) 为什么在ViewController的扩展中无法提供视图的出口是什么原因?
在和是同一xib引用的同一类中。
如Apple 的快速指南中所述:
Swift中的扩展可以:
添加计算实例属性和计算类型属性
定义实例方法和类型方法
提供新的初始化器
定义下标
定义和使用新的嵌套类型
使现有类型符合协议
我认为,正如注释中所建议的那样,它必须与内存有关。尽管新的存储属性将增加该对象的内存,但计算的属性不会。