有一些Objective-C库具有将整数枚举选项作为参数的函数,但是如果你想要默认选项,它们希望你传入0,这是典型的.但是在Swift中,这是不允许的,因为库指定了枚举类型.有没有什么方法可以在库中添加一个0枚举选项然后制作桥接代码以使其ObjC枚举在Swift中工作?
以下SDWebImageManager是iPhone应用程序中的示例:
SDWebImageManager.sharedManager().downloadWithURL(url, options: 0, progress: nil) { (image:UIImage!, error:NSError!, cacheType:SDImageCacheType, finished:Bool) -> Void in
// block code here
}
Run Code Online (Sandbox Code Playgroud)
Xcode会指出一个错误,options: 0因为它说'Int' is not convertible to SDWebImageOptions.我尝试了类似下面的内容,但是我得到了同样的错误:
let emptyOptions:SDWebImageOptions = 0
Run Code Online (Sandbox Code Playgroud) 有一个整洁的引导这里关于斯威夫特重载运营商,但它并没有说明处理运营商的功能什么我可以绕过像任何其他函数变量.我想做一些事情,比如var comparator = (<)设置一个变量到<函数,但我尝试过的每个语法都没有用,Swift编程指南没有提到任何相关的东西.我知道如何用lambda表达式实现类似的效果,但这很麻烦.如何为<函数设置变量?
运行Postgres-9.5.我有一张大桌子,我正在做ALTER TABLE table SET UNLOGGED.我已经删除了针对该表的所有外键约束,因为FK引用的表不能未记录.查询花了大约20分钟,一直消耗100%的CPU.我可以理解它需要花费很长时间来记录一个表,但是让它不被记录似乎并不困难......但是它呢?
有什么办法可以让你更快地设置一个未记录的表吗?
我有一个带有BorderLayout的JFrame类,它包含另一个扩展JPanel的类(ScorePanel).这是JFrame类的相关代码,该方法不是由设置ScorePanels的构造函数调用的.gPanel是主要的游戏面板,但不要担心:
public void initialize() { //called by controller at the end
if (Controller.DEBUG) System.out.println("View initialized");
JPanel scores = new JPanel();
scores.setSize(1000,200);
scores.setBackground(Color.BLACK);
ScorePanel score1 = new ScorePanel("Volume", 1);
ScorePanel score2 = new ScorePanel("Pitch", 2);
scores.add(score1); scores.add(score2);
scores.setVisible(true);
scores.validate();
this.add(scores, BorderLayout.SOUTH);
this.add(gpanel, BorderLayout.CENTER); //main game panel
this.validate();
this.setVisible(true);
this.repaint();
}
Run Code Online (Sandbox Code Playgroud)
这是ScorePanel的相关代码:
private int score; //this current score
private String name; //this name
private int player; //this player
public ScorePanel(String n, int p){ //a JPanel that shows the player's name and score …Run Code Online (Sandbox Code Playgroud) 假设我ArrayList在Java中添加了N个项目.最坏情况下的运行时间是多少?我知道添加单个项目可能是O(N),因为数组可能需要调整大小.它不会调整N次,因为我添加N个项目甚至是因子N因为(AFAIK)ArrayList每次调整大小时容量增加一些因素.这意味着某种log(N)数量的调整大小.所以看起来应该是O(N log(N))来插入N个项目,但我对此并不完全确定.我正在看的旧计算机科学考试的答案为O(N ^ 2).我错过了什么吗?
int newCapacity = (oldCapacity * 3)/2 + 1;(从这个答案)
我知道Erlang支持匿名功能。我的问题是,我可以从函数中返回一个函数,然后从外部调用该返回的函数吗?如果是这样,我该怎么办?我知道这在许多语言(例如C和Python)中都是可能的。这是我尝试做的,但是不起作用:
-module(test).
-export([run/0]).
test() ->
io:format("toasters", []).
bagel() ->
test.
run() ->
(bagel())().
Run Code Online (Sandbox Code Playgroud)
结果:
Erlang/OTP 17 [erts-6.2] [source] [64-bit] [smp:8:8] [async-threads:10] [hipe] [kernel-poll:false] [dtrace]
Eshell V6.2 (abort with ^G)
1> c(test).
test.erl:4: Warning: function test/0 is unused
{ok,test}
2> test:run().
** exception error: bad function test
in function test:run/0 (test.erl, line 11)
3>
Run Code Online (Sandbox Code Playgroud) 我在 macOS 中使用 Python 3.4。Matplotlib 应该支持标签中的 Unicode,但我没有看到表情符号正确呈现。
import matplotlib.pyplot as plt
# some code to generate `data` and `labels`...
plt.clf()
plt.scatter(data[:, 0], data[:, 1], c=col)
# disclaimer: labeling taken from example http://stackoverflow.com/questions/5147112/matplotlib-how-to-put-individual-tags-for-a-scatter-plot
for label, x, y in zip(labels, data[:, 0], data[:, 1]):
plt.annotate(
label, # some of these contain Emojis
xy=(x, y), xytext=(-20, 20),
textcoords='offset points', ha='right', va='bottom',
bbox=dict(boxstyle='round,pad=0.5', fc='yellow', alpha=0.5),
arrowprops=dict(arrowstyle = '->', connectionstyle='arc3,rad=0'))
plt.show(False)
Run Code Online (Sandbox Code Playgroud)
一些旧的 Unicode 之前的表情符号以旧样式显示,但其余的(在本例中为“火”、“音乐”等)则不然。有什么技巧可以让这些正确显示吗?
我有一个uint8_t数组,我需要从前4个元素,32位,创建一个size_t(uint32_t在我的机器上).
示例非工作代码:
uint8_t array[8];
array[0] = 128;
array[1] = 128;
array[2] = 0;
array[3] = 0;
size_t size = array[0]; //results in 128
size = *array; //also results in 128
Run Code Online (Sandbox Code Playgroud)
该数组的前四个索引的字节是80 80 00 00.
我希望size_t通过读取该数组的前4个字节数据得到128 + 256*128,小端.有没有办法让size_t初始化直接读取这4个字节,就好像数组是任何旧的内存块而不是手动添加和乘法来找到我想要的值?
有没有一种方法可以更新 SQLite3 数据库中的行并获取这些更新的行,而不需要在我经常调用的函数中使用SELECTfollow by UPDATE,而无需进行第二次查询或执行任何比SELECTfollow by慢的操作UPDATE?使用触发器和中间表不算数,因为它仍然比我想要的慢。我正在使用标准sqlite3C 库。
例子:
UPDATE "ACTIVE"
SET confirmed2 = '%d'
WHERE username2 = '%s' AND activity = '%d'
Run Code Online (Sandbox Code Playgroud)
我正在更新“ACTIVE”表的行。我还想检索“username2”和“activity”是某一对值的所有行,以便我可以检查另一列的值“username1”。由于该UPDATE命令已经在查询这些行来更新它们,因此应该(但可能没有)有一种方法可以让我获取这些行而不需要再次查询。我可以获得受影响的行数,但找不到有关获取行数据的任何信息。
我正在尝试在Ejabberd中添加davisp/jiffy作为rebar依赖,因此我可以在我的模块中进行一些JSON解析.我找到了这个教程,他们将Jiffy添加为不同项目的依赖项,但它没有用.我稍微调整了一下,以匹配他们在Ejabberd中导入其他依赖项的方式,但它仍然无效.这就是我的Deps样子rebar.config.script:
Deps = [{p1_cache_tab, ".*", {git, "git://github.com/processone/cache_tab"}},
{p1_tls, ".*", {git, "git://github.com/processone/tls"}},
{p1_stringprep, ".*", {git, "git://github.com/processone/stringprep"}},
{p1_xml, ".*", {git, "git://github.com/processone/xml"}},
{esip, ".*", {git, "git://github.com/processone/p1_sip"}},
{jiffy, "0.*", {git, "git://github.com/davisp/jiffy"}},
{p1_stun, ".*", {git, "git://github.com/processone/stun"}},
{p1_yaml, ".*", {git, "git://github.com/processone/p1_yaml"}},
{ehyperloglog, ".*", {git, "https://github.com/vaxelfel/eHyperLogLog.git"}},
{p1_utils, ".*", {git, "git://github.com/processone/p1_utils"}}],
Run Code Online (Sandbox Code Playgroud)
呼叫输出make:
ejabberd@ubuntuserver:~/ejabberd$ make
/usr/lib/erlang/bin/escript rebar skip_deps=true compile
==> rel (compile)
==> avalanche (compile)
Dependency not available: jiffy-0.* ({git,"git://github.com/davisp/jiffy"})
ERROR: compile failed while processing /home/ejabberd/avalanche: rebar_abort …Run Code Online (Sandbox Code Playgroud) c ×2
java ×2
swift ×2
alter-table ×1
arraylist ×1
arrays ×1
big-o ×1
ejabberd ×1
enums ×1
erlang ×1
jiffy ×1
jpanel ×1
matplotlib ×1
objective-c ×1
postgresql ×1
python-3.x ×1
rebar ×1
sql-update ×1
sqlite ×1
swing ×1