Tag:

performSelector的返回值:

performSelector的返回值是什么:如果我传递一个select器,返回一个原始types(在对象上),比如NSDateComponents上的“week”(将返回一个int)?

在Serializable C#类中使用不带XmlArray的XmlArrayItem属性

我想用以下格式的XML: <configuration><!– Only one configuration node –> <logging>…</logging><!– Only one logging node –> <credentials>…</credentials><!– One or more credentials nodes –> <credentials>…</credentials> </configuration> 我想创build一个具有[Serializable]属性的类Configuration 。 要序列化凭证节点,我有以下几点: [XmlArray("configuration")] [XmlArrayItem("credentials", typeof(CredentialsSection))] public List<CredentialsSection> Credentials { get; set; } 但是,当我将它序列化为XML时,XML格式如下: <configuration> <logging>…</logging> <configuration><!– Don't want credentials nodes nested in a second configuration node –> <credentials>…</credentials> <credentials>…</credentials> </configuration> </configuration> 如果我删除[XmlArray("configuration")]行,我得到以下内容: […]

如何更有效地使用@Nullable和@Nonnull注释

我可以看到@Nullable和@Nonnull注释有助于防止NullPointerException但是它们不会传播很远。 这些注释的有效性在一层间接后完全消失,所以如果只添加一些注释,它们就不会传播很远。 由于这些注释没有被很好地执行,所以存在假设用@Nonnull标记的值不为空并且因此不执行空检查的危险。 下面的代码会使用@Nonnull标记的参数为null而不会引发任何投诉。 它在运行时抛出一个NullPointerExceptionexception。 public class Clazz { public static void main(String[] args){ Clazz clazz = new Clazz(); // this line raises a complaint with the IDE (IntelliJ 11) clazz.directPathToA(null); // this line does not clazz.indirectPathToA(null); } public void indirectPathToA(Integer y){ directPathToA(y); } public void directPathToA(@Nonnull Integer x){ x.toString(); // do stuff to x […]

性能惊喜与“为”和可为空的types

我只是修改了C#深入处理可空types的第4章,我添加了一个关于使用“as”运算符的部分,它允许您编写: object o = …; int? x = o as int?; if (x.HasValue) { … // Use x.Value in here } 我认为这是非常简洁的,它可以提高C#1的性能,使用“is”后跟一个cast – 毕竟,这样我们只需要dynamictypes检查一次,然后进行简单的值检查。 但是,这似乎并非如此。 我已经在下面包含了一个示例testing应用程序,它基本上总结了一个对象数组中的所有整数 – 但是数组包含了大量的空引用和string引用以及盒装整数。 该基准测量了您在C#1中使用的代码,使用“as”运算符的代码,以及用于踢LINQ解决scheme的代码。 令我惊讶的是,在这种情况下,C#1代码速度提高了20倍 – 即使是LINQ代码(由于涉及到迭代器,我预计它会更慢)比“as”代码更胜一筹。 可执行文件isinst的.NET实现是否真的很慢? 是额外的unbox.any导致问题吗? 有没有另外的解释呢? 目前感觉就像在性能敏感的情况下,我将不得不包含使用这个警告。 结果: 演员:10000000:121 如:10000000:2211 LINQ:10000000:2143 码: using System; using System.Diagnostics; using System.Linq; class Test { const int Size = 30000000; […]

在10.9上以编程方式启用对辅助设备的访问

我想在10.9上以编程方式启用对辅助设备的访问。 在10.8及更低版本中,我使用以下Applescript来访问辅助设备: tell application "System Events" if UI elements enabled is false then set UI elements enabled to true end if end tell 随着10.9,苹果已将可访问性选项移到系统偏好设置➞安全和隐私➞隐私➞可访问性。 与以前版本的OS X(对所有应用程序使用通用checkbox)不同,10.9中的新function允许用户单独select哪些应用程序可以控制系统执行各种脚本function。 苹果没有提供任何API给开发人员以编程方式启用应用程序的可访问性。 因此,当应用程序使用可访问性API时,Mac OS 10.9将提示最终用户权限对话框以启用辅助function。 此外,用户必须在启用辅助function后重新启动应用程序。 我们可以使用Applescript或任何其他API以编程方式启用对辅助设备的访问吗? 任何帮助解决这个问题将不胜感激。

Objective-C Cocoa应用程序中的正则expression式

初始Googlesearch表明在Objective-C Cocoa应用程序中没有内置的方法来执行正则expression式。 所以有四个问题: 这是真的吗? 你在跟我开玩笑吗? 好的,那么你有一个很好的开源库吗? 有什么办法可以在不导入图书馆的情况下使用NSScanner类来实现?

Java:如何testing调用System.exit()的方法?

我有几个方法应该在某些input上调用System.exit() 。 不幸的是,testing这些情况导致JUnit终止! 把方法调用放在一个新的线程中似乎没有什么帮助,因为System.exit()终止了JVM,而不仅仅是当前的线程。 有没有处理这个问题的共同模式? 例如,我可以替代System.exit()的存根吗? [编辑]有问题的类实际上是一个命令行工具,我试图在JUnit里面testing。 也许JUnit根本就不是这个工作的正确工具? 对于互补回归testing工具的build议是受欢迎的(最好是与JUnit和EclEmma很好地结合的东西)。