我不知道如何在 Xcode 13 中调试预览。
Xcode 11 和 Xcode 12 的文档有相互冲突的建议,例如
我已经尝试了所有方法 - 并在预览/视图/初始化函数中的几乎每一行代码上放置了断点 - 但是我点击运行,它只是...运行... - 所以我看到了预览,但没有断点被击中 - 控制台中没有出现任何打印语句 - 没有出现很酷的扩展用户界面显示 - 并且没有出现菜单。
有任何想法吗?
gson是一个很棒的图书馆 - 它运作良好.有时我有自定义要求,可以制作和注册TypeAdapters和TypeAdaptorFactories - 这也很有效.
然而令我困惑的是,如何委托回json序列化...大多数时候我需要这个用于集合,但为了说明这一点 - 假设我有一个对类,gson显然会愉快地序列化,但由于某种原因我需要自己的自定义序列化程序.好吧......如果我的配对是
public class Pair
{
public final Object First;
public final Object Second;
public Pair( Object first, Object second) {this.first = first; this.second = second};
}
Run Code Online (Sandbox Code Playgroud)
如果我为此编写了一个类型适配器 - 您希望 write函数看起来像:
public void write( JsonWriter out, Pair pair )
{
out.beginObject();
out.name( "first");
out.value( pair.first ); // can't do this
out.name( "second");
out.value( pair.second); // or this
out.endObject();
}
Run Code Online (Sandbox Code Playgroud)
所以你可以看到问题 - 我不知道第一个和第二个的类型,也不知道它们是如何序列化的.我可以使用gson.toJson来序列化第一个和第二个 - 但是如果我将它们作为字符串添加到编写器中,它们将被转义.有一个gson.tojson函数,它接受一个值和一个编写器 - 但它也需要一个typetoken - 我没有.我得到的印象是,我打算从某个地方安装另一个类型的适配器 - 但是当我只有一个对象列表时......我从哪里得到它?我只是获得对象的适配器?
我有点困惑?当然这是最常见的用例?大多数自定义序列化程序将用于T或T树之类的奇怪列表,并且你真的不知道列表中的内容,除了它继承自T …
我在法盖特有一个简单的网站和一个 alb。我想在其之上添加一个简单的基本身份验证 - 只需一个硬连线的用户名和密码。是否有捷径可寻?
我尝试去 cognito - 创建一个用户池,并将其附加到网站,但存在诸如“回调 url”之类的问题 - 我只是将其设置为相同的 url 和“注销 url”,但我不确定以及何时我设法单击了一组允许我添加它的东西,并向我的 https 端点添加一个侦听器 - 当我尝试进入时,它只会给出“redirect_mismatch”。
有什么方法可以做我想做的事而不以任何方式编辑底层系统?
我正在使用resharper运行visual studio 2013.快速的机器,24GB的内存,编辑,编译都闪电般快速.
如果我尝试在文件中搜索,或者我尝试在即时窗口中键入命令,则它无法使用缓慢 - 就像击键之间的40秒一样.
知道发生了什么,以及如何解决这个问题?
我正在努力让nexe使用一个使用sqlite3的节点程序.当我尝试时,我在运行时得到它:
package.json must declare these properties:
binary.module_name
binary.module_path
binary.host
Run Code Online (Sandbox Code Playgroud)
我已经在网上阅读了所有内容 - 我发现很多文章都说不支持node-pre-gyp,有些人说你必须创建一些神秘的.node文件,实际上很多都使用sqlite3作为一个例子 - 但没有任何东西能给我一些关于如何让它真正起作用的线索.
我尝试使用--build-from-source安装sqlite,这本身就是一个考验,但是没有做任何事情.谁能解释究竟如何获得nexe与sqlite3的工作.
所以 - 我有一个名为设置的类,我在所有地方都使用它 - 并且特别希望其他视图在内容更改时做出反应。我用 @MainActor 注释了它 - 当运行应用程序时,一切正常。
但是,在预览中我只是尝试创建一个实例:
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
Group {
ContentView( settings: Settings())
}
}
}
Run Code Online (Sandbox Code Playgroud)
突然间,虽然主程序编译并运行良好,但预览却无法正常运行。
在同步非隔离上下文中调用主参与者隔离初始化程序“init()”。
我可以使用如下代码来解决这个问题:
struct ContentView_Previews: PreviewProvider {
var settings : Settings
static func get_settings() -> Settings
{
var the_array : [Settings] = []
DispatchQueue.main.asyncAndWait( execute: DispatchWorkItem {
the_array.append( Settings())
})
return the_array[0]
}
init()
{
self.settings = ContentView_Previews.get_settings()
}
static var previews: some View {
Group {
ContentView( settings: Settings())
}
} …Run Code Online (Sandbox Code Playgroud) 我目前成功地使用了 Express Handbars - 但是我想用它来更新和渲染页面的一部分 - 随时间变化的项目列表,所以我想在计时器上更新该列表。基本上在浏览器上我有以下代码:
$.get( "myUrl").then( result => $("#targetdiv").html( result.html ));
Run Code Online (Sandbox Code Playgroud)
所以在服务器上的每个页面我都做了这样的事情:
app.get("/myUrl", async (req, res) => {res.render( "someTemplateFile");} )
Run Code Online (Sandbox Code Playgroud)
然而,显然这两者不能一起工作 - 我需要这样做:
app.get("/myUrl", async (req, response) =>
{
var renderedHtml = .....someCodeHere...... ("someTemplateFile");
response.send( {html:renderedHtml} );
}
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法可以做到这一点?
所以我在我的 api 网关设置中设置了这个:
我的 lambda 中的以下代码:
return {
"statusCode": 200,
"body": image_in_base64,
"headers": {"Content-Type": "image/jpeg"},
"isBase64Encoded" : True
}
Run Code Online (Sandbox Code Playgroud)
当我从浏览器调用时 - 我得到一个 jpeg 图像类型 - 但内容长度显示内容仍然是 base64 编码的 - 无论我将 isBase64Encoded 设置为什么,网关都不会对其进行解码。
我究竟做错了什么?
[这必须在任何浏览器上工作 - 所以我无法控制“接受”参数]
所以 - 我已经用 python 构建了一些规则引擎 - 但我对 python 相当陌生......我的引擎很好用 - 但添加新规则非常丑陋,我想知道是否有一个清理它的方法。
要记住的关键是规则有副作用,规则可以与 ands、ors 等组合 - 并且只有在整个规则成功时才应用副作用 - 即规则是否成功的检查不能与发挥副作用。
所以每条规则最终看起来都是这样的:
def sample_rule():
def check( item ):
if item.doesnt_pass_some_condition(): return None
def action_to_perform():
item.set_some_value()
item.set_some_other_value()
return action_to_perform
return Rule(check)
Run Code Online (Sandbox Code Playgroud)
这看起来非常丑陋 - 但你似乎无法执行多行 lambda 或零行lambda...我想我正在寻找类似的东西:
def sample_rule():
return Rule( lambda x: x.passes_condition(),
lambda x: {x.set_some_value(), x.set_some_other_value)}
Run Code Online (Sandbox Code Playgroud)
但条件和副作用都可以是多行,并且副作用通常是空的。
那么有没有一种更简单的模式可以适用于所有情况?(当我只有一行条件和一行副作用时,我真的不想使用上面的模式,而在其他情况下则使用完全不同的模式)
只是出于兴趣,最后你会得到类似的东西
rule1 = sample_rule().andalso( other_rule_1().or(other_rule_2)).butnot( other_rule_3)
...
...
for thing_to_check in lots_of_things:
for rule in lots_of_rules:
if rule.apply_to( thing_to_check): break # take the first rule …Run Code Online (Sandbox Code Playgroud) 如果我只是在 Xcode 13.2.1 中创建一个全新的 hello world 应用程序 - 一切似乎都工作正常 - 我可以做任何事情,这似乎不是一个除了噪音之外的问题,但我的日志充满了其中的许多:
2022-02-20 10:14:44.073415+1100 helloworldproject[2387:3258621] [default] capability properties: could not find untranslocated node for <FSNode 0x600002cfe300> { isDir = ?, path = '/private/var/folders/x5/j8_s1gf110q3vwm00nfxd3lc0000gn/X/1129DA76-DFA0-5FEF-A3CB-319330C06433/d/Wrapper/helloworldproject.app' }, proceeding on the assumption it is not translocated: Error Domain=NSPOSIXErrorDomain Code=1 "Operation not permitted"
Run Code Online (Sandbox Code Playgroud)
我猜这是我不允许的一些安全设置或其他东西 - 但每次我运行任何项目时都会发生这种情况。一件事是,我使用的是苹果硅盒(m1 max) - 上次我在英特尔上进行任何 iOS 开发 - 但从未得到过这个,所以想知道它是否是苹果硅的东西?
底线 - 即使它似乎没有影响任何东西 - 有什么方法可以摆脱它吗?
node.js ×2
swiftui ×2
xcode ×2
amazon-elb ×1
aws-lambda ×1
c# ×1
concurrency ×1
express ×1
gson ×1
java ×1
json ×1
node-sqlite3 ×1
python ×1
resharper ×1
swift ×1