如何在Swift中覆盖存储属性的setter?
在Obj-C中,我可以覆盖它的setter,但是Swift对于getter/setter用于存储属性似乎并不高兴.
假设我有一个Card
叫做属性的类rank
.我不希望客户端给它任何无效值,因此,在objective-C中,我可以覆盖setRank
它以便执行额外的检查.但是willSet
在Swift中似乎没有帮助,因为newValue
它是常量而且分配是没有意义的,rank
因为setter将在循环中被调用.
任何了解Lisp的人都可以帮忙解决这个警告吗?
我升级到Emacs 24.3,每当我使用Emacs创建Python文件时,我都会收到此警告消息.搜索python.el
并找到产生警告的以下代码部分:
(let ((indentation (when block-end
(goto-char block-end)
(python-util-forward-comment)
(current-indentation))))
(if indentation
(set (make-local-variable 'python-indent-offset) indentation)
(message "Can't guess python-indent-offset, using defaults: %s"
python-indent-offset)))
Run Code Online (Sandbox Code Playgroud)
这是我的.emacs
设置:
(setq-default c-basic-offset 4
tab-width 4
indent-tabs-mode nil)
(add-hook 'c-mode-common-hook
(lambda ()
(c-set-offset 'arglist-intro '+)
(c-set-offset 'arglist-close 0)))
(add-hook 'python-mode-hook
(lambda ()
(c-set-offset 'arglist-intro '+)
(c-set-offset 'arglist-close 0)))
Run Code Online (Sandbox Code Playgroud) 我从我的 java 代码中收到这个奇怪的错误:
java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
Run Code Online (Sandbox Code Playgroud)
我用来生成密钥库的命令:
keytool -genkey -alias tomcat -keystore keystore.jks
这是我的java代码:
import java.security.cert.PKIXParameters;
import java.security.KeyStore;
import java.io.FileInputStream;
public class MyKeyTest {
public static void main(String[] args) throws Exception {
KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
String password = "mypass";
ks.load(new FileInputStream("keystore.jks"), password.toCharArray());
new PKIXParameters(ks);
}
}
Run Code Online (Sandbox Code Playgroud)
我试图用谷歌搜索这个错误,但大多数情况下它说当找不到密钥库或不允许读取密钥库时会发生这种情况。
但对于我来说,这两种情况都不成立。有任何想法吗?
我在 ipython 中有以下代码,子进程尝试执行此操作sys.exit(...)
,但导致父进程挂起。这是一个错误吗?知道如何解决这个问题吗?
In [1]: from multiprocessing import Pool
In [2]: def f():
...: import sys
...: sys.exit('exiting system...')
...:
In [3]: p = Pool(processes=2)
In [4]: r = p.apply_async(f, [])
In [5]: r.get() <---- it is hanging here forever.
Run Code Online (Sandbox Code Playgroud)
我也尝试过代替,raise SystemExit(...)
但sys.exit(...)
结果是一样的。我知道的唯一解决方法是把raise Exception(...)
结果放在一起,效果很好。
我知道这sys.exit
本质上与 相同raise SystemExit
,但是这个异常应该委托给它的父进程,因此r.get()
应该能够正确地接收这个异常?但它似乎陷入了recv
待命状态。multiprocessing
这是模块中的错误吗?
试图找到一种包装对象的方法,该对象是基于一些具有大量 getter 和 setter 的模型自动生成的。例如:
class ObjectToWrap {
public int getIntA();
public int getIntB();
... // Tons of other getters
}
Run Code Online (Sandbox Code Playgroud)
我必须创建一个包装这个对象的包装器,并使用一些ObjectToWrap
为我生成方法的注释。代码如下所示:
class Wrapper {
private ObjectToWrap obj;
public int getIntA() {
return obj.getIntA();
}
public int getIntB() {
return obj.getIntB();
}
... // Tons of other getters
}
Run Code Online (Sandbox Code Playgroud)
有没有注释可以做到这一点?我只是不想让代码看起来很长。
两个问题UITableView
:
1)单个是否有可能UITableView
有两个部分,一个具有动态单元类型,另一个具有静态单元类型?
2)当我添加UITableViewController
到画布时,在Xcode属性编辑器中,我有选项来指定单元格类型(动态/静态).但是当我将UITableView添加到普通的UIView中时,我没有看到这个选项.有任何想法吗?
我有多年的emacs经验,但对vim来说是新手.
在emacs中,如果我的代码没有正确缩进,我可以使用tab键缩进我的代码,无论我的光标在哪里,只要它在当前行上.
在vim中有相同的东西吗?我试过'>'键,但它只是为我提供更多标签.
ios ×2
java ×2
python ×2
elisp ×1
emacs ×1
indentation ×1
iphone ×1
keytool ×1
objective-c ×1
pki ×1
python-2.7 ×1
swift ×1
uitableview ×1
vim ×1