我这样使用,并且有效:(在 @interface 之外的 .h 中)
static NSString * const mkLocaleIdentifierUS = @"en_US";
static NSString * const mkLocaleUserSystemSettings = nil;
经过一段时间的研究后,我偶然发现了这个调试技巧。它显示 AVAudioPlayer 第二次被释放,导致崩溃。那么代表一定已经完成了清理工作吗?我检查了这个 SO 线程,它是建议代表不要取消分配。但是,如果我删除该行
[newPlayer release];
“我的程序可以运行”!阅读此 SO 线程后,我相信我的问题是我应该实现 AVAudioPlayerDelegate 的 - (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player success:(BOOL)flag 方法并在声音播放完毕后释放音频播放器。我是为 AVAudioRecorder 做的。
我发现“:hover”在 iPhone/iPad Safari 中是不可预测的。有时点击元素会使该元素“:悬停”,而有时它会漂移到其他元素。
目前,我只在身体上上“无接触”课程。
<body class="yui3-skin-sam no-touch">
...
</body>
并将所有 CSS 规则与“:hover”放在“.no-touch”下面:
.no-touch my:hover{
color: red;
}
在页面的某个位置,我有 javascript 从正文中删除 no-touch 类。
if ('ontouchstart' in document) {
Y.one('body').removeClass('no-touch');
}
这看起来并不完美,但无论如何它都有效。
必须像下面这样;
[Required(ErrorMessageResourceType = typeof(Resources), ErrorMessageResourceName = "Required")]
原因是因为它是模糊的。编译器只需决定其中之一。有人认为间接性越少越好(性能可能是一个原因)。
如果开发人员只是写:
((Base)d).Foo (i);
它很清楚并且给你预期的结果。
可以调试集成/功能测试。请参阅以下资源:
- http://maven.apache.org/plugin-developers /plugin-testing.html
- http:// docs.codehaus.org/display/MAVENUSER/Review+of+Plugin+Testing+Strategies
- http://docs.codehaus.org/display/MAVEN/Maven+Plugin+Harness
以防万一(以及其他读者),维基页面 处理基于 Eclipse 的 IDE 解释了如何远程调试外部 Maven 进程(不知道为什么你想避免这种情况)。
一种可能适合您的解决方案是不使用 T extends Number
,而是使用 T extends Number & 。可比较
。此类型意味着:“T
只能设置为实现两个接口的类型。”
这使您可以编写适用于所有可比较数字的代码。静态类型且优雅。
这与 BennyBoy 提出的解决方案相同,但它适用于各种方法,而不仅仅是比较器类。
public static <T extends Number & Comparable<T>> void compfunc(T n1, T n2) {
if (n1.compareTo(n2) > 0) System.out.println("n1 is bigger");
}
public void test() {
compfunc(2, 1); // Works with Integer.
compfunc(2.0, 1.0); // And all other types that are subtypes of both Number and Comparable.
compfunc(2, 1.0); // Compilation error! Different types.
compfunc(new AtomicInteger(1), new AtomicInteger(2)); // Compilation error! Not subtype of Comparable
}
1) 按照惯例,将类的属性声明放在构造函数和方法之前。
2) CarLoan
类中的语句 this.client = client;
会出现编译错误,因为 client
字段在Loan
类。 (无论如何,该语句是多余的,因为您只是使用 setter 初始化了相同的字段......尽管希望您已经知道这一点。)
3)初始化超类字段的更好方法是将参数传递给超类构造函数。例如:
public abstract class Loan
{
private Person client;
private double interestRate;
public Loan(Person client, double interestRate) {
this.client = client;
this.interestRate = interestRate;
}
...
}
public class CarLoan extends Loan
{
...
public CarLoan(Person client, double vehiclePrice, double downPayment, double salesTax,
double interestRate, CAR_LOAN_TERMS length)
{
super(client, interestRate);
this.vehiclePrice = vehiclePrice;
...
}
}
这种方法更好的原因是 Loan 类负责其初始化,并且不依赖于各种子类构造函数来完成这项工作。 (如果您向 Loan 添加额外的字段,并将相应的参数添加到 Loan 构造函数中,编译器会提醒您修改所有子类构造函数以提供初始值super
构造函数链接。如果子类负责在初始化期间设置基类中的字段,则编译器不会注意到您忘记添加新的 setter 调用。)
4) 如果您这样做在构造函数中调用方法时,最好确保它们不能在子类中被重写。 (不……重写方法并非完全错误,但有些事情可能会出现严重错误。在构造函数中调用可能可重写的方法会使您的代码变得脆弱。)
5) 如果这是生产代码,请使用float
或 double
来表示货币值将是一个很大的禁忌!
您的代码包含一个私有静态初始化实例:
private static Foo instance = new Foo();
您是否假设这意味着实例构造函数将始终在访问任何静态方法之前运行,从而确保bar
已初始化?
在单线程的情况下,我认为你是对的。
事件顺序为:
- 调用
Foo.BarLength()
- 类
Foo
的静态初始化(如果尚未完成) - 私有静态成员
instance< 的静态初始化/code> 与
Foo
实例 - 进入
Foo.BarLength()
但是,每个应用程序域仅触发类的静态初始化一次 - 并且 IIRC 不会阻塞确保在调用任何其他静态方法之前它已完成。
因此,您可能会遇到以下情况:
- Thread Alpha:调用
Foo.BarLength()
- Thread Alpha:类
Foo
的静态初始化(如果尚未完成)开始 - 上下文切换
- 线程 Beta:调用
Foo.BarLength()
- 线程 Beta:不调用类
Foo
的静态初始化,因为那是已经进行 - 线程 Beta:进入
Foo.BarLength()
- 线程 Beta:访问
null
静态成员instance
合约分析器无法知道您永远不会以多线程方式运行代码,因此必须谨慎行事。
解决此问题的更好方法是使用 UIImage
方法 drawInRect:
来绘制图像。我假设您希望图像跨越您的视图的整个边界。这就是您在 drawRect:
方法中输入的内容。
而不是:
CGContextRef ctx = UIGraphicsGetCurrentContext();
UIImage *myImage = [UIImage imageNamed:@"theImage.png"];
CGImageRef img = [myImage CGImage];
CGRect bounds = [self bounds];
CGContextDrawImage(ctx, bounds, img);
写下:
UIImage *myImage = [UIImage imageNamed:@"theImage.png"];
CGRect bounds = [self bounds];
[myImage drawInRect:bounds];
Tabwidget 负责管理活动。所有未显示的活动都会暂停,并在 Tabhost 中选择活动时恢复。
问题是功能测试认为 mime_type 是“”(即空白)。因此,对我来说,一种更简单的方法是在 app.yml 中定义有效的文件类型:
all:
.validation:
valid_file_types:
- text/comma-separated-values
- text/csv
...et cetera...
test:
.validation:
valid_slug_file_types:
-
然后在表单中,
$this->setValidator('file', new sfValidatorFile(array(
'mime_types' => sfConfig::get('app_valid_file_types')
)));
如果需要文件字段,则其他解决方案(sfBrowser 和 sfTestFunctional 上的额外方法)对我不起作用。
随着 Safari 7 的发布,不仅第 3 方 cookie 被阻止。本地存储以及WebDB,任何类型的网站数据都被阻止。当您进入 Safari 首选项(CMD+逗号)时,在 Safari 7 上的隐私选项卡下,它现在显示:“阻止 cookie 和其他网站”,最初是“阻止 cookie”。这证实了这些变化。
其他浏览器将来可能会跟进。最有可能的是火狐。 Chrome,咳嗽*咳嗽*可能不会。
您可能必须采用一些解决方法,使用重定向技术或弹出窗口,类似于 disqus 所做的。
向右旋转讨论: http ://www.osix.net/modules/article/?id=320 (web.archive)
图片说明:http://www.penguin.cz/~literakl/intel/r.html
希望这有帮助
rotate right discussion: http://www.osix.net/modules/article/?id=320 (web.archive)
pictorial descriptions: http://www.penguin.cz/~literakl/intel/r.html
Hope this helps
我如何在 C 中执行这些 asm ROR 和 BT/RCR 操作?旋转或从另一个数字移入一位