如何在 GeometryReader 中设置 @State var?
这是我的代码:
@State var isTest:Int = 0
var body: some View {
VStack{
ForEach(self.test, id: \.id) { Test in
VStack{
GeometryReader { geometry in
self.isTest = 1
Run Code Online (Sandbox Code Playgroud)
我尝试使用一个函数,但它不起作用。
@State var isTest: Int = 0
func testValue() {
self.isTest = 1
}
var body: some View {
VStack{
ForEach(self.test, id: \.id) { Test in
VStack{
GeometryReader { geometry in
testValue()
Run Code Online (Sandbox Code Playgroud)
任何想法?谢谢!
我试图允许用户在 C 中调用“main”并让“main”等待 requestAnimationFrame 继续执行。即 main 可以有一个 while(1) 循环,而在 main 中,会有一个“waitForAnimationFrame”...或者允许实现像 sleep(...) 这样的函数。
我一直在挖掘 emscripten 如何实际执行此操作的内部工作原理,但它看起来不太适合我的目的。这个页面涉及了许多与我想做的事情非常接近的事情,但是当以这种方式实现时,它们似乎都没有实际工作。https://kripken.github.io/blog/wasm/2019/07/16/asyncify.html
更具体地说,似乎最好的方法是保存堆栈,然后通过 Wasm 中的虚拟函数“返回”,然后当事件在 javascript 中发生时,我可以调用一个虚拟函数但返回到正确的位置。但是,这将需要调用堆栈,它似乎不是实际的一部分STACKTOP,或者通过stackSave和可用stackRestore。最值得注意的是,无论我似乎做什么似乎都setThrew不起作用。即它只是立即返回。
我还尝试使用一些启动/停止展开功能,但由于从 Javascript 返回到 Wasm 时出现错误,因此无法在那里取得进展。
这里有什么想法吗?我真的不能像某些人想要的那样使 main 异步并期望它仍然以相同的方式工作。
编辑:好的,这是我正在测试的一些示例。
示例 1:保存/恢复堆栈
在 C 中有这两个函数:
void waittask()
{
volatile int sentinel = 85755555;
consolelog("waittask1");
waitout();
consolelog("waittask2");
}
void waitret()
{
volatile int sentinel = 12994423;
consolelog("waitret1");
stacksetup(sentinel);
stacksetup(sentinel);
consolelog("waitret2");
}
Run Code Online (Sandbox Code Playgroud)
使用 JavaScript 函数:
stacksetup : function() {
console.log( "STACK SETUP" ); …Run Code Online (Sandbox Code Playgroud) 我知道我们需要使用CABasicAnimation动画阴影,但我不知道如何UIViewPropertyAnimator与CABasicAnimation.
我被Throttle出版商困住了。我不明白它选择间隔的方式。Debounce发布者更容易理解,它在每个发布的值之后选择一个间隔,并检查在该间隔内是否发布了新值。我Throttle什至从 Apple看到了一些例子,但它们非常非常简单。
假设我们有一些上游产生值,并且我们知道所有值是何时产生的 ( input: [Time])。Throttle发布者使用这些值,限制它们并在其他时间产生值 ( output: [Time])。有没有办法编写一个产生正确预期的函数output?
func output<Time>(interval: Time, input: [Time]) -> [Time] {
//
}
Run Code Online (Sandbox Code Playgroud)
顺便说一句,我相信latest参数在选择间隔时没有任何作用,是吗?我相信它只是从提供的间隔中选择值。
我正在尝试使用 Dropzone.js 使用签名 URL 直接上传到 Google Cloud Storage。我已经设法覆盖添加到 Dropzone 的每个文件的上传 URL。Chrome 开发工具说PUT正在发生请求,但我不可避免地收到 HTTP 400 错误作为响应。
这是我的 Dropzone.js 配置
Dropzone.options.myAwesomeDropzone = {
url: '/',
uploadMultiple: false,
method: 'PUT',
parallelUploads: 1,
uploadMultiple: false,
header: '',
autoProcessQueue: false,
autoDiscover: false,
maxFiles: 1,
acceptedFiles: 'image/*,video/*',
accept: function(file, done) {
var self = this;
$.post('/api/v1/signed_file_upload', {key: window.apiKey, name: file.name, type: file.type}, function(data) {
if(data.success) {
file.uploadURL = data.data;
done()
setTimeout(function() {
self.processFile(file)
}, 0)
} else {
done(data.message)
}
})
},
init: function() …Run Code Online (Sandbox Code Playgroud) javascript google-cloud-storage dropzone.js google-cloud-platform
将多个值从 WebAssembly 传递到 Javascript 可能比实际需要的更困难。通常,我发现我必须:
多值是 Wasm 的一项功能,旨在使这一过程变得更容易,其中多个值可以直接从 Wasm 传递到 JavaScript,从而无需处理指针。步骤变为:
例如:
(module
(func $multResult (export "multResult")
(result f64 f64)
f64.const 1
f64.const 2
)
)
Run Code Online (Sandbox Code Playgroud)
我们直接输出1和2。
我可以使用Rick Battagline 的有用函数从 WAT 编译 Wasm(稍作修复以正确支持多值标志):
node ./bin/watwasm bugrepro.wat -o newoutput.wasm -O3 --multi-value
将生成的 Wasm 编译转回 WAT,我们得到:
(module
(type $none_=>_f64_f64 (func (result f64 f64)))
(export "multResult" (func $0))
(func …Run Code Online (Sandbox Code Playgroud) 我在我的项目中使用通过 SwiftPM 安装的MetaCodable宏,当我尝试使用 Microsoft Azure 管道并使用我的本地计算机作为运行代理 (MBP M1 Max - Sonoma - XCode 15) 来构建项目时,我收到以下错误消息:
error: external macro implementation type 'CodableMacroPlugin.CodedAt' could not be found for macro 'CodedAt'
这里有些人建议添加-external-plugin-path到other Swift flags构建设置中,但这并不能解决问题。
在这个线程中,有些人还建议添加-load-plugin-library、 或-plugin-path、 或-load-plugin-executableto other Swift flags,我使用值尝试了这些选项的每个选项:$(BUILT_PRODUCTS_DIR)#MetaCodable但我在每个 CI 构建中都遇到了相同的错误。
我还在 Azure 的管道构建日志中收到此警告:
"output": "<unknown>:0: warning: compiler plugin not loaded: '/Users/my_user_name/Library/Developer/Xcode/DerivedData/MyProject/Build/Products/Release/CodableMacroPlugin; failed to initialize /Users/my_user_name/vsts-agent-osx-x64-2.183.1/_work/9/MyProject/Data/Models/SomeModel.swift
任何对此的想法都值得赞赏。
我正在实施以下教程:语音转文本
我正在使用 AVAudioEngine 录制音频并使用 SFSpeechRecognizer 来实现语音到文本。此处,教程使用开始和停止录制的按钮将语音引导为文本。
当应用程序获得许可时,我开始在 viewDidAppear 进行录制。但我找不到任何方法可以在几秒钟的沉默后停止录制。以下是我的代码:
import UIKit
import Speech
public class ViewController: UIViewController, SFSpeechRecognizerDelegate {
// MARK: Properties
private let speechRecognizer = SFSpeechRecognizer(locale: Locale(identifier: "en-US"))!
private var recognitionRequest: SFSpeechAudioBufferRecognitionRequest?
private var recognitionTask: SFSpeechRecognitionTask?
private let audioEngine = AVAudioEngine()
@IBOutlet var textView : UILabel!
@IBOutlet var recordButton : UIButton!
public override func viewDidLoad() {
super.viewDidLoad()
recordButton.isEnabled = false
}
override public func viewDidAppear(_ animated: Bool) {
speechRecognizer.delegate = self
SFSpeechRecognizer.requestAuthorization { authStatus in
/*
The callback …Run Code Online (Sandbox Code Playgroud) 我有一个 ELF 文件,我想从中获取我的代码的hex或文件。bin在终端中,如果 a do a file main,这是我的文件,它会显示:
main: ELF 32-bit LSB executable, UCB RISC-V, version 1 (SYSV), statically linked, not stripped
Run Code Online (Sandbox Code Playgroud)
据我所知,objdump在 macOS 上不起作用,并且otool -l main出现以下错误:
llvm-objdump: 'main': Object is not a Mach-O file type.
Run Code Online (Sandbox Code Playgroud)
ELF 文件是使用以下命令创建的:
riscv-none-gcc/8.2.0-2.1-20190425-1021/bin/riscv-none-embed-gcc --specs=nosys.specs main.c -o main
Run Code Online (Sandbox Code Playgroud)
那么有没有办法做到呢?
多谢
在 UIKit 中,通常会UIAlertController在响应某些操作时呈现模态弹出警报消息。
SwiftUI 中是否有模态警报控制器类型?
有没有办法UIAlertController从 SwiftUI 类中呈现 a ?似乎可以使用UIViewControllerRepresentable但不确定是否需要这样做?
ios ×3
c ×2
javascript ×2
swift ×2
swiftui ×2
webassembly ×2
animation ×1
binary ×1
binutils ×1
combine ×1
debounce ×1
dropzone.js ×1
elf ×1
frp ×1
macos ×1
otool ×1
rust ×1
swift-macro ×1
swift3 ×1
swift5.9 ×1
throttling ×1
xcode15 ×1