小编alm*_*mel的帖子

在Swift中如何在GCD主线程上调用带参数的方法?

在我的应用程序中,我有一个函数,它生成NSRURLSession并使用发送NSURLRequest

sesh.dataTaskWithRequest(req, completionHandler: {(data, response, error)
Run Code Online (Sandbox Code Playgroud)

在这个任务的完成块中,我需要做一些计算,将UIImage添加到调用viewcontroller.我有一个叫做的功能

func displayQRCode(receiveAddr, withAmountInBTC:amountBTC)
Run Code Online (Sandbox Code Playgroud)

这是UIImage添加计算.如果我尝试在完成块内运行视图添加代码,Xcode会抛出一个错误,说我在后台进程中无法使用布局引擎.所以我在SO上发现了一些试图在主线程上排队方法的代码:

let time = dispatch_time(DISPATCH_TIME_NOW, Int64(0.0 * Double(NSEC_PER_MSEC)))
                    dispatch_after(time, dispatch_get_main_queue(), {
                        let returned = UIApplication.sharedApplication().sendAction("displayQRCode:", to: self.delegate, from: self, forEvent: nil)
                        })
Run Code Online (Sandbox Code Playgroud)

但是,我不知道如何将参数"receiveAddr"和"amountBTC"添加到此函数调用中.我该怎么做,或者有人可以建议一种方法调用添加到应用程序主队列的最佳方法吗?

parameters grand-central-dispatch swift

184
推荐指数
6
解决办法
16万
查看次数

在Apache Kafka中,为什么不能有比分区更多的消费者实例?

我正在学习卡夫卡,在这里阅读介绍部分

https://kafka.apache.org/documentation.html#introduction

特别是有关消费者的部分.在引言的倒数第二段中,它读到了

卡夫卡做得更好.通过在主题中具有并行性概念 - 分区 - ,Kafka能够在消费者流程池中提供订购保证和负载平衡.这是通过将主题中的分区分配给使用者组中的使用者来实现的,以便每个分区仅由该组中的一个使用者使用.通过这样做,我们确保使用者是该分区的唯一读者并按顺序使用数据.由于有许多分区,这仍然可以平衡许多消费者实例的负载.但请注意,除分区之外不能有更多的消费者实例.

我的困惑源于最后一句话,因为在该段落的正上方,作者描绘了两个消费者群体和一个4分区主题,消费者实例多于分区!

没有比分区更多的消费者实例也没有意义,因为那时分区将非常小,并且似乎为每个消费者实例创建新分区的开销会使Kafka陷入困境.我知道分区用于容错并减少任何一台服务器上的负载,但上述句子在分布式系统的环境中没有意义,该分布式系统应该能够一次处理数千个消费者.

distributed apache-kafka

57
推荐指数
5
解决办法
4万
查看次数

如何从终端运行.sh或.bat文件?

我在这里有一个非常基本的问题,这对我来说是偶然发生的,直到现在,我都忽略了它.我下载了tomcat web服务器,"Murach的Java Servlets和JSP"一书告诉我导航到tomcat/bin目录并启动服务器我在终端输入

$ startup

但是,我得到了错误

-bash: startup: command not found
Run Code Online (Sandbox Code Playgroud)

此目录中的相关文件是startup.sh和startup.bat.键入这两个都会返回相同的错误消息

所以我的问题是,什么是.bat和sh文件,以及如何运行这些文件?我已经阅读了几个不同语言和软件程序的教程,有时当教程说在命令行中执行一堆文件时,我收到"命令未找到"错误.有时候它有效,有时则不然.这对我来说很困惑,那么解决这些"命令未找到"终端问题的常见解决方案是什么?

bash terminal tomcat

31
推荐指数
4
解决办法
21万
查看次数

如何在Swift中使用completionHandler Closure返回?

我正在尝试使用RESTful API来返回一些json数据.我想封装创建HTTP请求的代码并在其自己的方法中设置标头,以便我可以通过输入url String来调用它,然后让方法返回一个JSON对象.

在下面的代码片段中,我已经创建了请求对象并设置了标题,我将该变量称为"req".我没有声明任何名为data,response或error的对象.我有以下代码正确打印出一个JSON对象

let sesh = NSURLSession.sharedSession()
    let dataTask = sesh.dataTaskWithRequest(req, completionHandler: {(data, response, error) in
        var jsonError : NSError?
        let jsonBlob = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableLeaves, error: &jsonError)
        println(jsonBlob)
        });

    dataTask.resume()
Run Code Online (Sandbox Code Playgroud)

所以这是我的问题.如何使这个completionHandler块能够返回类型为"AnyObject!"的jsonBlob?如果我稍微修改代码如下:

let sesh = NSURLSession.sharedSession()
    let dataTask = sesh.dataTaskWithRequest(req, completionHandler: {(data, response, error) -> AnyObject! in
        var jsonError : NSError?
        let jsonBlob : AnyObject! = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableLeaves, error: &jsonError)
        return jsonBlob
        });

    dataTask.resume()
Run Code Online (Sandbox Code Playgroud)

然后程序将不会编译为对dataTaskWithRequest的调用:completionHandler给出编译器警告说:

 Could not find an overload for 'dataTaskWithRequest' that accepts the supplied arguments
Run Code Online (Sandbox Code Playgroud)

我不明白这一点.我正在使用正确的语法来返回闭包,如Swift …

closures swift

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

如何在Swift中居中UITextField文本

我有一个UITextField对象,其text属性设置为"hi".然而,这两行对"hi"所在的位置没有影响

 myUITextObject.contentVerticalAlignment = UIControlContentVerticalAlignment.Center
 myUITextObject.contentHorizontalAlignment = UIControlContentHorizontalAlignment.Center
Run Code Online (Sandbox Code Playgroud)

这是Swift中的错误吗?如果是这样,我如何将其记录为一个错误,以便Apple可以在下一个Swift版本中修复它?

uitextfield ios swift

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

伊斯坦布尔HTML报告中的"E"和"I"符号

具有黑色背景的"I"和"E"符号在istanbul JS代码覆盖工具生成的HTML报告中表示什么?

在此输入图像描述

istanbul

16
推荐指数
1
解决办法
3434
查看次数

mysql var/lib/mysql 目录不存在,无法启动mysql服务器

我已经阅读了许多论坛帖子,并希望解决我在让自己的 mysql 服务器启动和正常工作时遇到的问题,但到目前为止都没有奏效。我读过的许多论坛帖子都引用了 /var/lib/mysql 文件夹,我收到的一些错误也是如此,例如当我运行时

$ mysqld
Run Code Online (Sandbox Code Playgroud)

在使用 Mac 的终端上并收到以下错误

2013-06-03 00:40:46 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2013-06-03 00:40:46 1851 [Warning] Can't create test file /var/lib/mysql/Alexs-MacBook-Pro-3.lower-test
2013-06-03 00:40:46 1851 [Warning] Can't create test file /var/lib/mysql/Alexs-MacBook-Pro-3.lower-test
mysqld: Can't change dir to '/var/lib/mysql/' (Errcode: 2 - No such file or directory)
2013-06-03 00:40:46 1851 [ERROR] Aborting

2013-06-03 00:40:46 1851 [Note] Binlog end
2013-06-03 00:40:46 1851 [Note] mysqld: Shutdown …
Run Code Online (Sandbox Code Playgroud)

mysql path

5
推荐指数
2
解决办法
3万
查看次数

使用 luarocks 安装的模块在哪里

我试图要求我使用 luarocks 下载的模块

require "lualogging"
Run Code Online (Sandbox Code Playgroud)

但是 lua(和我!)找不到这个模块的下载位置。这是我所做的

我已经用apt-get安装了luarocks,然后我跑了

sudo luarocks install lualogging
Run Code Online (Sandbox Code Playgroud)

然后我跑了

luarocks list
Run Code Online (Sandbox Code Playgroud)

并收到以下输出

Installed rocks:

lualogging
1.3.0-1 (installed) - /usr/local/lib/luarocks/rocks

luasocket
3.0rc1-1 (installed) - /usr/local/lib/luarocks/rocks
Run Code Online (Sandbox Code Playgroud)

自然这让我相信 lualogging 位于 /usr/local/lib/luarocks/rocks,但运行此命令

find /usr/local/lib/luarocks/rocks "lualogging.lua"
Run Code Online (Sandbox Code Playgroud)

什么也没回。我在这里做错了什么?这可能是相关的,但我找不到我的 LUA_PATH 环境变量是什么,所以它可能从未设置过?我希望能够从任何文件中运行 require "lualogging",无论它位于文件系统的哪个位置,然后登录到我的心的内容。但我什至找不到 lualogging.lua 存在的地方......

lua luarocks

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

如何在 Peewee ORM 中使用 fn 对象

我正在使用 Python 的 Peewee ORM 来处理 MySQL 数据库。Peewee 提供了一个名为“fn”的对象,它允许您对数据库进行某些类型的调用。我想拨打的电话之一如下:

Blocks.select(Blocks, fn.Count(Blocks.height))
Run Code Online (Sandbox Code Playgroud)

其中 Blocks 是我的数据库中的一个表,其中有一列名为 height。该语法直接取自 Peewee 的文档,即

User.select(
User, fn.Count(Tweet.id))
Run Code Online (Sandbox Code Playgroud)

位于此处http://peewee.readthedocs.org/en/latest/peewee/querying.html。请注意,我的 python 文件顶部还有以下几行

import peewee
from peewee import *
from peewee import fn
Run Code Online (Sandbox Code Playgroud)

然而,当我运行这段代码时,它不起作用,并且它吐出这个

<class '__main__.Blocks'> SELECT t1.`height`, t1.`hash`, t1.`time`, t1.`confirmations`, t1.`size`, t1.`version`, t1.`merkleRoot`, t1.`numTX`, t1.`nonce`, t1.`bits`, t1.`difficulty`, t1.`chainwork`, t1.`previousBlockHash`, t1.`nextBlockHash`, Count(t1.`height`) FROM `blocks` AS t1 []
Run Code Online (Sandbox Code Playgroud)

所以这实际上只是打印出选择查询返回的列名。

我必须编写什么代码才能返回表中的行数?我很遗憾使用 peewee,因为它使得本来应该是简单的查询变得不可能找到正确的语法。

python peewee

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

RLS:如何自动解决 Visual Studio Code 中的导入错误?

我最近从 IntelliJ 切换到 Visual Studio Code,但我不明白的一件事是如何告诉我的编辑器自动编写一个

use std::sync::Arc;
Run Code Online (Sandbox Code Playgroud)

当我遇到类似以下导入错误时,在我的文件顶部:

VSC 中的 Rust 导入错误

在 IntelliJ 中,我所要做的就是单击红色错误图标并选择“导入”, 就会use出现在文件顶部。

我有 VSC 的 RLS 扩展。我该怎么做呢?

rust visual-studio-code

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