我的一些控制器操作在其逻辑中使用request.host参数.在集成测试中,我可以使用该host!方法来设置主机.如何在功能测试中实现同样的目标?
我的主程序产生一个线程,执行以下命令:
// alloc autorelease pool somewhere before
NSArray *blah = [NSArray arrayWithObject: @"moo"];
[self performSelectorOnMainThread: @selector(boonk:) withObject: blah
waitUntilDone: NO];
// release autorelease pool somewhere after
Run Code Online (Sandbox Code Playgroud)
现在,这似乎对我来说是错误的,因为自动释放池可以在选择器boonk:完成执行之前释放,这会导致崩溃.
所以,我接下来的自然行动将是:
// alloc autorelease pool somewhere before
NSArray *blah = [[NSArray alloc] initWithObject: @"moo"];
[self performSelectorOnMainThread: @selector(boonk:) withObject: blah
waitUntilDone: NO];
// release autorelease pool somewhere after
- (void)boonk: (id)data
{
// do something with data
[data release]; // release the ref count the thread added
}
Run Code Online (Sandbox Code Playgroud)
这绝对没有错误,但......似乎不自然.是否有一个objective-c引用计数约定或协议来处理这种情况(交叉线程等待发布),或者是第二种解决方案,它的工作方式是什么?
multithreading memory-management conventions objective-c nsthread
我有这段代码(应该是不言自明的;如果没有,请问):
for tr in completed_taskrevs:
found = False
for nr in completion_noterevs:
if tr.description in nr.body:
completion_noterevs.remove(nr)
found = True
break
assert found
Run Code Online (Sandbox Code Playgroud)
我怎样才能让它更加pythonic?
在PHP中,我可以这样做:
// $post = 10; $logic = >; $value = 100
$valid = eval("return ($post $logic $value) ? true : false;");
Run Code Online (Sandbox Code Playgroud)
所以上面的陈述将返回false.
我可以在JavaScript中做类似的事情吗?谢谢!
达伦.
我有以下内容.
tail -f成功消息的命令检查日志文件.即使我在代码中有0出口,我也无法结束这个tail -f过程.
哪个不让我的脚本完成.在Bash中有没有其他方法可以做到这一点?
代码如下所示.
function startServer() {
touch logfile
startJavaprocess > logfile &
tail -f logfile | while read line
do
if echo $line | grep -q 'Started'; then
echo 'Server Started'
exit 0
fi
done
}
Run Code Online (Sandbox Code Playgroud) 我正在寻找最好的方法来从List中获取一个随机元素,其中T将是通过基类无关的不同类型的对象.
我一直在为List创建一个扩展方法,或者是一个收到List的帮助方法,但我还是没能把它放在一起.每次我遇到处理T的问题我都不知道是什么.
是否可以在不创建接口或基类的情况下执行此操作?因为我看不到为不同的T实现基类或接口的任何有意义的方法.
关于Jesper Hauge
在更多关于泛型方法的阅读之后,我设法自己编写了一些代码.这是我的解决方案:
public static class ListExt
{
public static T RandomItem<T>(this List<T> list)
{
if (list.Count == 0)
return default(T);
if (list.Count == 1)
return list[0];
Random rnd = new Random(DateTime.Now.Millisecond);
return list[(rnd.Next(0, list.Count))];
}
}
Run Code Online (Sandbox Code Playgroud)
这是一种扩展方法,可以使用以下代码从任何List中选择随机项:
private Picture SelectTopPic()
{
List<Picture> pictures = GetPictureList();
return pictures.RandomItem();
}
Run Code Online (Sandbox Code Playgroud) 我想知道从SqlHelper类的ExecuteDataTable返回的c#中的数据表中哪些值为null.
string select = "select * from testTable";
string val="";
DataTable dt=dbcon.ExecuteDataTable(select);
foreach (DataRow dr in dt.Rows)
{
foreach (DataColumn dc in dt.Columns )
{
if(dr[dc].Equals (null))
{
val ="null";
}
else
{
val = dr[dc].ToString();
}
}
}
Run Code Online (Sandbox Code Playgroud)
但不幸的是,我没有找到任何办法.如果有办法,请告诉我.先感谢您.