小编Dar*_*key的帖子

如何在 Xcode 13 或更高版本中调试预览

我不知道如何在 Xcode 13 中调试预览。

预览

Xcode 11 和 Xcode 12 的文档有相互冲突的建议,例如

  • 右键点击运行按钮,你会得到一个菜单
  • 控制/命令/选项单击运行
  • 长按运行

我已经尝试了所有方法 - 并在预览/视图/初始化函数中的几乎每一行代码上放置了断点 - 但是我点击运行,它只是...运行... - 所以我看到了预览,但没有断点被击中 - 控制台中没有出现任何打印语句 - 没有出现很酷的扩展用户界面显示 - 并且没有出现菜单。

有任何想法吗?

xcode swiftui

19
推荐指数
1
解决办法
1万
查看次数

使用自定义typeadapter,json中的jsonwriter添加对象

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 …

java json gson

12
推荐指数
1
解决办法
1万
查看次数

亚马逊 alb 和基本身份验证

我在法盖特有一个简单的网站和一个 alb。我想在其之上添加一个简单的基本身份验证 - 只需一个硬连线的用户名和密码。是否有捷径可寻?

我尝试去 cognito - 创建一个用户池,并将其附加到网站,但存在诸如“回调 url”之类的问题 - 我只是将其设置为相同的 url 和“注销 url”,但我不确定以及何时我设法单击了一组允许我添加它的东西,并向我的 https 端点添加一个侦听器 - 当我尝试进入时,它只会给出“redirect_mismatch”。

有什么方法可以做我想做的事而不以任何方式编辑底层系统

amazon-web-services amazon-elb amazon-cognito

9
推荐指数
1
解决办法
8973
查看次数

Visual Studio 2013即时窗口和搜索速度慢

我正在使用resharper运行visual studio 2013.快速的机器,24GB的内存,编辑,编译都闪电般快速.

如果我尝试在文件中搜索,或者我尝试在即时窗口中键入命令,则它无法使用缓慢 - 就像击键之间的40秒一样.

知道发生了什么,以及如何解决这个问题?

c# resharper immediate-window visual-studio-2013

8
推荐指数
1
解决办法
1022
查看次数

nexe,node和sqlite3

我正在努力让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的工作.

node.js node-sqlite3

7
推荐指数
1
解决办法
257
查看次数

如何在预览中构建带注释的 swiftui 类 mainactor

所以 - 我有一个名为设置的类,我在所有地方都使用它 - 并且特别希望其他视图在内容更改时做出反应。我用 @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)

concurrency swiftui

6
推荐指数
2
解决办法
824
查看次数

快速把手渲染为字符串而不是响应

我目前成功地使用了 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)

有没有一种简单的方法可以做到这一点?

node.js express handlebars.js express-handlebars

5
推荐指数
1
解决办法
4212
查看次数

aws lambda isBase64Encoded 不适合我

所以我在我的 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 设置为什么,网关都不会对其进行解码。

我究竟做错了什么?
[这必须在任何浏览器上工作 - 所以我无法控制“接受”参数]

amazon-web-services aws-lambda aws-api-gateway

5
推荐指数
0
解决办法
1762
查看次数

在Python中返回函数的更简单的方法

所以 - 我已经用 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)

python

5
推荐指数
1
解决办法
145
查看次数

在 Xcode 下调试任何内容时都会出现有关未转换节点的 swift NPOSIXERRORDOMAIN 警告

如果我只是在 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 开发 - 但从未得到过这个,所以想知道它是否是苹果硅的东西?

底线 - 即使它似乎没有影响任何东西 - 有什么方法可以摆脱它吗?

xcode swift

5
推荐指数
0
解决办法
930
查看次数