小编Min*_*ing的帖子

'String'不符合预期类型'CVarArg'

当我正在尝试登录时,我正面临着这个错误.

remote: /tmp/build_f459d376d1bc10ac2e93e52575ac5ea9/Sources/App/main.swift:368:49: error: argument type 'String' does not conform to expected type 'CVarArg'
remote:                     NSLog("FILE NOT AVAILABLE", "TESTNOTI")
remote:                                                 ^~~~~~~~~~
remote:                                                            as! CVarArg
Run Code Online (Sandbox Code Playgroud)

mycode的

if fileManager.fileExists(atPath: (drop.config["servers", "default", "KeyURL"]?.string ?? "default")) {
    NSLog("FILE AVAILABLE", "TESTNOTI")
} else {
    NSLog("FILE NOT AVAILABLE", "TESTNOTI")
}
Run Code Online (Sandbox Code Playgroud)

swift vapor

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

mysqli 在 PHP 7.4 中是否支持 caching_sha2_password?

当我尝试从 PHP 7.3 升级到 PHP 7.4 时,收到此错误:

执行 caching_sha2 auth 109 时出现意外的服务器响应

在我看来,这表明 PHP 7.4 MySQLi 正在尝试使用该caching_sha2_password插件。这篇文章指出 PHP MySQLi 不支持该插件(它也暗示未来会支持它),但由于 PHP 7.4 是新的并且似乎正在尝试使用它,我想它应该可以工作。此外,错误消息与不受支持的情况不同(访问被拒绝身份验证方法未知)。

所以我将我的 MySQL 身份验证插件更改为caching_sha2_password(使用与以前相同的密码):

ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '';
FLUSH PRIVILEGES;
Run Code Online (Sandbox Code Playgroud)

但这导致了另一个错误:

用户 'root'@'localhost' 的访问被拒绝(使用密码:YES)。

切换回 PHP 7.3 并mysql_native_password再次运行。

我对两个插件、同一个网站使用了相同的密码,并应用了相同的 php.ini 更改。但是,我没有更改任何mysqli配置。MySQL 的日志什么也没显示,apache2 日志只显示“拒绝访问”错误消息。

php7.4-mysqli 支持caching_sha2_password吗?是的

为什么我的密码被拒绝,我该如何解决? 查看我的后续问题

另外,如果 MySQLi 仍然不支持该插件:我如何使用mysql_native_password它?

php mysql authentication mysqli php-7.4

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

PHP 7.4 和 MySQL:caching_sha2_password 拒绝长 (20c) 密码

更新:

23.02.2020:该错误已在PHP 7.4.3 中修复。

23.12.2019:我发现了哪些密码受到影响。看我下面的回答。仍然非常感谢为什么拒绝长密码的答案。


免责声明:我已经尝试了大约 2 个小时,只是设置了不同的密码。我绝对相信下面的密码会导致问题。它适用于其他密码。我知道如何修复它:使用不同的密码。我想知道为什么它不起作用。因为这种不一致是不可接受的。

我能够在我的系统上重现该问题。


最近切换到 PHP 7.4 和 MySQL 8,默认情况下使用caching_sha2_password. 在验证它实际上受 PHP 支持后,我无法使用随机生成的密码使其工作,因此我mysql_native_password再次使用 PHP 7.3 。

现在,我设置了一个新服务器并且它工作正常,所以我试图找出问题所在,以便我可以caching_sha2_password在我的其他服务器上使用。

MySQL(通过 mysql shell 使用root

ALTER USER 'test'@'localhost' IDENTIFIED WITH caching_sha2_password BY '';
FLUSH PRIVILEGES;
QUIT
Run Code Online (Sandbox Code Playgroud)

PHP

const DB_HOST = '127.0.0.1';
const DB_USERNAME = 'test';
const DB_PASSWORD = '';
const DB_NAME = 'test_db';
$mysqli = new mysqli(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_NAME);
Run Code Online (Sandbox Code Playgroud)

测试(重现)

php db.php
Run Code Online (Sandbox Code Playgroud)

错误 …

php mysql authentication mysqli php-7.4

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

更改主题时呈现问题

我是Appdevelopment的新手,并尝试在Windows 10 x64上更改Android Studio 1.4.1(最新版)中的应用主题,但我总是得到例外,这就是我所做的:(是的,我现在已经有很多了问题,但我找不到答案)

  1. 启动项目(名称:TEST)
  2. 适用于手机和平板电脑(分钟SDK:API 15 Android 4.0.3 IceCreamSandwich)
  3. 选择空白活动(名称:MainActivity)
  4. 转到activity_main.xml - >设计视图
  5. 选择Nexus 4; API 23; Holo Light/Holo Dark/Material Light/Material Dark ; (API和手机没关系=>尝试了很多)
  6. 例外:

渲染问题

无法实例化以下类:

  • android.support.design.widget.CoordinatorLayout
  • android.support.design.widget.AppBarLayout

小费: [...]

例外细节

java.lang.IllegalArgumentException:您需要将Theme.AppCompat主题(或后代)与设计库一起使用.位于android.support.design.wck.CoordinatorLayout的android.support.design.design.widget.ThemeUtils.checkAppCompatTheme(ThemeUtils.java:34)处于android.support.design.widget.CoordinatorLayout.(CoordinatorLayout.java:178).(CoordinatorLayout) .java:172)at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)at java. lang.reflect.Constructor.newInstance(Constructor.java:422)org.jetbrains.android.uipreview.ViewLoader.createNewInstance(ViewLoader.java:458)org.jetbrains.android.uipreview.ViewLoader.loadClass(ViewLoader.java: 170)在android.view.BridgeInflater.loadCustomView的com.android.tools.idea.rendering.LayoutlibCallbackImpl.loadView(LayoutlibCallbackImpl.java:190)的org.jetbrains.android.uipreview.ViewLoader.loadView(ViewLoader.java:103) (BridgeInflater.java:218)在andro 位于android.view.LayoutInflater的android.view.LayoutInflater.inflate(LayoutInflater.java:492)的android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)中的id.view.BridgeInflater.createViewFromTag(BridgeInflater.java:145) .inflate(LayoutInflater.java:394)位于com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:223)的com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:426)at at COM.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:350)位于com.android.tools.idea的com.android.tools.idea.rendering.RenderTask $ 2.compute(RenderTask.java:510) .rendering.RenderTask $ 2.compute(RenderTask.java:498)at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:888)at com.android.tools.idea.rendering.RenderTask.createRenderSession( RenderTask.java:498)com.android.tools.idea.rendering.RenderTask.access $ 600(RenderTask.java:72)at com.android.tools.idea.rendering.RenderTask $ 3.call(RenderTask .java:610)com.android.tools.idea.rendering.RenderTask $ 3.call(RenderTask.java:607)at com.android.tools.idea.rendering.RenderService.runRenderAction(RenderService.java:366)at com .android.tools.idea.rendering.RenderTask.render(RenderTask.java:607)位于com.intellij.android.designer.designSurface的com.android.tools.idea.rendering.RenderTask.render(RenderTask.java:629) .AndroidDesignerEditorPanel $ 6.run(AndroidDesignerEditorPanel.java:480)at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:320)at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue. java:310)at com.intellij.util.ui.update.MergingUpdateQueue $ 2.run(MergingUpdateQueue.java:254)at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:269)at com. intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:227)at com.intellij.util.ui.update.MergingUpdateQueue.run(MergingUpdateQueue.java:217)at …

android rendering android-theme

6
推荐指数
1
解决办法
2675
查看次数

Chrome WebGL的性能异常不一致?

function render(time, scene) {
    if (useFramebuffer) {
        gl.bindFramebuffer(gl.FRAMEBUFFER, scene.fb);
    }

    gl.viewport(0.0, 0.0, canvas.width, canvas.height);
    gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
    gl.enable(gl.DEPTH_TEST);

    renderScene(scene);

    gl.disable(gl.DEPTH_TEST);
    if (useFramebuffer) {
        gl.bindFramebuffer(gl.FRAMEBUFFER, null);
        copyFBtoBackBuffer(scene.fb);
    }

    window.requestAnimationFrame(function(time) {
        render(time, scene);
    });
}
Run Code Online (Sandbox Code Playgroud)

我无法分享我使用的确切代码,但是一个模型将说明我的观点。

我正在渲染一个相当复杂的场景,并且还在WebGL中进行了一些光线追踪。我注意到了两个非常奇怪的性能问题。

1)两次运行之间的帧率不一致。有时,当页面开始时,最初的约100帧在25ms内渲染,然后突然下降到45ms,而无需用户输入或更改场景。我不会更新帧中的任何缓冲区或纹理数据,而仅更新着色器制服。发生这种情况时,GPU内存将保持不变。

2)渲染到默认帧缓冲区比使用额外的传递慢。如果渲染到创建的frambuffer,然后渲染到HTML canvas(默认的framebuffer),则性能提高了10%。因此,在代码段中,如果useFramebuffer == true获得了性能,这似乎非常不直观。

编辑1:

由于需求的变化,场景将始终渲染到帧缓冲区,然后复制到画布。这使问题2)成为非问题。

编辑2:

在以下系统上测试了PC的系统规格:

  • 操作系统:Win 10
  • 处理器:Intel i7-7700
  • 英伟达GTX 1080
  • 内存:16 GB

编辑3:

我使用chrome:tracing描绘了场景。前约100-200帧渲染16.6ms。

快的部分

然后开始丢帧。 慢的部分

我将尝试使用计时器查询来分析所有内容,但恐怕每个渲染实际上花费相同的时间,并且缓冲区交换将随机花费两倍的时间。

我注意到的另一件事是,当我使用Chrome一段时间后,这种情况开始发生。问题开始时,清除浏览器缓存或取消Chrome进程无济于事,只有重新启动系统才能起作用。

Chrome是否有可能一时兴起地限制GPU?

PS帧时间由于一些优化而改变,但核心问题仍然存在。

performance google-chrome webgl

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

Swift 字典:-[__NSCFNumber objectForKey:]:发送到实例的无法识别的选择器

我通过键(对象)访问字典,大多数情况下工作正常,但有时它会崩溃:

-[__NSCFNumber objectForKey:]: 无法识别的选择器发送到实例 0x8000000000000000

我发现的最接近我的问题是这个

这是我的(简化的)代码:

class Meal {
    private static let KEY = Date()
    private static let KEY_Q = DispatchQueue(label: "Meal.KEY")
    static var menus = OrderedDictionary<Date, [Int:Meal]>()

    static func test() throws {
        var date: Date?
        var menu: [Int:Meal]?
        try KEY_Q.sync {
            menu = Meal.menus[KEY] // <-- Error
            if menu == nil {
                date = KEY.clone()
            }
        }
        DispatchQueue.main.async {
            //This needs to run on the UI Thread, since it also loops over Meal.menus
            if date != …
Run Code Online (Sandbox Code Playgroud)

thread-safety swift

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

PHP自定义会话处理程序问题(PHP 7.1)

我刚刚从PHP 7.0迁移到PHP 7.1(当前版本的WAMP的全新/干净安装)并且它似乎已经破坏了自定义会话处理程序中的某些东西,它应该将会话保存到数据库而不是使用文件系统.

自定义处理程序类是:

class db_session_handler实现SessionHandlerInterface {

class db_session_handler implements SessionHandlerInterface {

    public function __construct($db) {
        $this->db = $db;
    }

    public function open($save_path,$session_name) {
        $this->db;
        return true;
    }

    public function close() {
        unset($this->db);
        return true;
    }

    public function read($session_id) {

        if (!isset($session_id)) {
            $session_id='';
        }

        try {
            $sql="
                SELECT
                    sess_data
                FROM
                    ue_user_session
                WHERE
                    sess_id = :sess_id
            ";
            $stmt = $this->db->prepare($sql);
            $stmt->bindParam(':sess_id', $session_id);
            $stmt->execute();
            $res = $stmt->fetchAll(PDO::FETCH_ASSOC);
            if (count($res) <> 1 ) {
                return false;
            } else {
                return $res[0]['sess_data'];
            } …
Run Code Online (Sandbox Code Playgroud)

php session

4
推荐指数
1
解决办法
4413
查看次数

Swift:如何解决下标歧义。命名下标?

我已经实现了一个有序字典,它有两个下标。第一个用于索引(始终为 类型Int),第二个用于可变类型的键keyType

这一切都工作正常,直到keyTypeis Int,因为现在下标显然不明确。

“下标”的使用不明确

因此,为了解决歧义,我尝试简单地key:为该值添加一个名称标签,就像普通函数参数一样,但这导致key: keyType被视为我的参数类型,从而导致此错误:

无法使用“(key: Int)”类型的索引为“OrderedDictionary”类型的值添加下标

错误消息对我来说非常清楚,但我不知道如何解决歧义。现在我正在使用一个函数insert(for:value:)

这是 OrderedDictionary 类:

import Foundation

struct OrderedDictionary<keyType: Hashable, valueType>: Sequence {
    typealias Element = (keyType, valueType)

    let comparator: ((Element, Element) -> (Bool))?
    var keys = [keyType]()
    var values = [keyType:valueType]()
    var count: Int {
        get {
            return keys.count
        }
    }

    public struct Iterator: IteratorProtocol {
        let parent: OrderedDictionary
        var position: Int = 0

        init(parent: OrderedDictionary) {
            self.parent …
Run Code Online (Sandbox Code Playgroud)

named-parameters swift

3
推荐指数
1
解决办法
749
查看次数

在子类中使用 super 或 this 访问超类中的属性?

就超类中定义的属性值而言,在子类中使用相同的属性并且该属性被定义为受保护,那么使用superthis没有任何区别,对吧?那么为什么语言确实有这些访问属性的方式呢?是否存在他们会有不同价值观的情况?

class A {
    protected int a = 15; 
}
        
class B extends A { 
    public void printA() {
        System.out.print(super.a) // prints 15
        System.out.print(this.a) // prints 15
    }
}
Run Code Online (Sandbox Code Playgroud)

java inheritance

2
推荐指数
1
解决办法
4796
查看次数

如何从当前时间戳中减去秒数

我正在尝试创建一个查询,它将获取在过去 10 秒内插入的结果:

SELECT *
  FROM table
  WHERE client_id = 1
    AND hash = 'x'
    AND insert_time >= current_timestamp - **10 seconds**
Run Code Online (Sandbox Code Playgroud)

我一直在寻找如何从当前时间戳中减去 10 秒,但我还没有成功。

mysql sql database datetime

2
推荐指数
1
解决办法
8831
查看次数