打电话通常是个好主意-[NSRunLoop runUntilDate:]吗?它似乎没有任何问题,但它让我很紧张,告诉运行循环从运行循环内运行.
更多信息:
我现在有一个从REST服务获取数据的项目.需要获得的一个关键信息是具有有效数据的日期范围.它是只需要一次得到的数据非常小一点,所以我决定来处理它的最好办法是让物业下载数据,如果局部变量nil.我正在使用ASIHTTPRequest和一个ASINetworkQueue,所以默认情况下一切都是异步的,为了使这个工作,这个属性在下载和处理数据之前不能返回.这是我的代码的大纲,变量的名称已被更改以保护无辜:
__block BOOL isWorking = YES;
__block ASIHTTPRequest *request = [[[ASIHTTPRequest alloc] initWithURL:/*actual URL*/] autorelease];
[request setCompletionBlock:^{
// set local variable
isWorking = NO;
}];
[request setFailedBlock:^{
// show alert to user
isWorking = NO;
}];
[queue addOperation:request];
while (isWorking) {
[[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.1]];
}
Run Code Online (Sandbox Code Playgroud)
再次,这似乎工作正常.使用这种方法有任何潜在的问题吗?
以下方式定义属性之间是否存在差异 -
// private, with getter & setter
private string fName;
public string Name
{
get { return this.fName }
set { this.fName = value }
}
// define as a Property
public string Name { get; set;}
Run Code Online (Sandbox Code Playgroud)
据我所知,它看起来只是一种风格偏好.我错过了什么吗?
给出以下代码:
if ("string") {
console.log('true!');
}
//logs "true" to the console
if ("string"==true) {
console.log('true!');
}
//doesn't log anything
Run Code Online (Sandbox Code Playgroud)
为什么会这样?我以为"string"是被转换成一个数字,就像布尔一样.因此true变得1和"string"变NaN.第二个if语句有意义,但我不明白为什么第一个语句会导致内部循环被评估.这里发生了什么?
我正在使用UIScrollView作为使用核心动画的组件的基础.当用户滑动视图时,我想根据滚动视图的目标(静止)位置来定位元素.为此,我需要在scrollViewWillBeginDecelerating:方法或类似方法中计算UIScrollView的目标contentOffset.
我需要这个的原因是我将使用目标contentOffset将嵌套在scrollview的contentView中的视图设置为最终位置.我当然可以在contentOffset或类似设置上设置观察者,但这会导致混乱动画,因为嵌套视图会在减速期间多次更新其位置.我希望这只发生一次.
有一个简单的方法吗?
我有一个Javascript错误已经报告给我,不幸的是我不知道如何重现它.IE8开发人员工具报告以下错误:意外的量词.以下行产生错误:
var g=RegExp(d+"=([^|]*)").exec(j); //output from closure-compiler
Run Code Online (Sandbox Code Playgroud)
我想我必须正确地逃避管道,\\|以解决问题,但我不知道我是否正确,因为我不知道如何重现错误.
欢迎任何建议或解决方案.
谢谢.
[UPDATE]
值d是__utmz我正在尝试检索的cookie值的键,它们列在这样的数组中["utmccn", "utmcmd", /* ... */].那么现在我没有那么多可以做,我和我的朋友流感在家.
如何在PHPUnit中使用Spy对象?您可以在模仿中调用对象,然后您可以断言它调用了多少次.这是间谍.
我知道PHPUnit中的"Mock"是Stub Object和Mock Object.
我最近通过随机ad-hoc测试在我的代码中发现了一个不寻常的错误.所以,我为它做了一个测试用例.
这是我的测试用例:
SampleRequest request = new SampleRequest();
request.setA(null);
request.setB(null);
assertEquals(null, request.getAOrB());
Run Code Online (Sandbox Code Playgroud)
A和B被定义为java.lang.Integer类型,并具有直接的setter方法来将它们的值设置到请求中.
还涉及一个枚举.它有一个原始整数值,以及在此代码中使用的方法.我会在这里发布相关部分:
enum Swapper {
public int c;
Swapper findSwapperToUse(final int a) {
for(Swapper swapper : values()) {
if(swapper.c == a) {
return swapper;
}
}
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
现在,这是令人困惑的方法.在该方法上调用测试方法会导致NPE,但是在方法的最后一行.
public class SampleRequest {
private Integer A;
private Integer B;
public void setA(final Integer A) {
this.A = A;
}
public void setB(final Integer B) {
this.B = B;
}
public Integer getAOrB() {
return A != null …Run Code Online (Sandbox Code Playgroud) 我想在使用Eclipse设置多项目工作区方面提出一些建议.换句话说,我打算创建一些应用程序,它将使用两个或更多项目进行最终构建.项目将存储在某个版本控制系统中.这很容易做到.
我正在寻求的建议是如何设置版本控制或Eclipse工作区以使设置新的开发人员/新机器*非常简单.理想情况下,在新机器上新开发者或开发者将只发出一个命令(的东西:它可能是Eclipse的版本控制系统,一些构建系统,甚至是一个脚本); 该命令将建立一个可以构建代码的环境.
我将使用Java作为语言,使用Mercurial进行版本控制,如果这对解决方案很重要的话.我愿意使用构建系统,尽管我对它们中的任何一个都不熟悉.
基本上,我希望学习
*在这种情况下,新机器意味着具有必要应用程序的机器(例如Eclipse和TortoiseHg)但没有检查代码或任何工作空间
在C#中,我可以:
var n = new Person()
{
FirstName = "John",
LastName = "Smith"
};
Run Code Online (Sandbox Code Playgroud)
我可以在F#中做同样的事情吗?我的意思是,创建一个类并指定一些属性.
我想包装各种对象的每个方法,除了__init__使用装饰器.
class MyObject(object):
def method(self):
print "method called on %s" % str(self)
@property
def result(self):
return "Some derived property"
def my_decorator(func):
def _wrapped(*args, **kwargs):
print "Calling decorated function %s" % func
return func(*args, **kwargs)
return _wrapped
class WrappedObject(object):
def __init__(self, cls):
for attr, item in cls.__dict__.items():
if attr != '__init__' and (callable(item) or isinstance(item, property)):
setattr(cls, attr, my_decorator(item))
self._cls = cls
def __call__(self, *args, **kwargs):
return self._cls(*args, **kwargs)
inst = WrappedObject(MyObject)()
Run Code Online (Sandbox Code Playgroud)
但是,包装属性实例结果等同于:
@my_decorator
@property
def result(self):
return "Some …Run Code Online (Sandbox Code Playgroud)