我来自PHP背景,我习惯这样做var_dump
,echo
并print_r
在做某种调试时.
我刚开始使用jquery,今天是我的第一天,我正在试图看看是否有办法将值转储到firebug控制台.
我们是否有类似于jQuery的功能var_dump
或echo
以任何其他方式获取控制台上显示的值或调试语句?
我在Windows上编写一个程序,需要运行与可用内核一样多的线程.但我不知道如何获得核心数量.有任何想法吗?
我现在这样做:
MessageQueue queue = new MessageQueue(".\Private$\myqueue");
MessageEnumerator messageEnumerator = queue.GetMessageEnumerator2();
int i = 0;
while (messageEnumerator.MoveNext())
{
i++;
}
return i;
Run Code Online (Sandbox Code Playgroud)
但是由于显而易见的原因,它只是感觉不对 - 我不应该遍历每一条消息只是为了得到一个数,我应该吗?
有没有更好的办法?
我有一个方法需要逐个像素地解析一堆大的PNG图像(PNG每个600x600像素).它似乎在模拟器上运行良好,但在设备(iPad)上,我在某些内部存储器复制功能中获得了EXC_BAD_ACCESS.看起来大小是罪魁祸首,因为如果我在较小的图像上尝试它,一切似乎都有效.这是以下方法的记忆相关肉.
+ (CGRect) getAlphaBoundsForUImage: (UIImage*) image
{
CGImageRef imageRef = [image CGImage];
NSUInteger width = CGImageGetWidth(imageRef);
NSUInteger height = CGImageGetHeight(imageRef);
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
unsigned char *rawData = malloc(height * width * 4);
memset(rawData,0,height * width * 4);
NSUInteger bytesPerPixel = 4;
NSUInteger bytesPerRow = bytesPerPixel * width;
NSUInteger bitsPerComponent = 8;
CGContextRef context = CGBitmapContextCreate(rawData, width, height, bitsPerComponent, bytesPerRow, colorSpace, kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big);
CGColorSpaceRelease(colorSpace);
CGContextDrawImage(context, CGRectMake(0, 0, width, height), imageRef);
CGContextRelease(context);
/* non-memory related stuff */
free(rawData);
Run Code Online (Sandbox Code Playgroud)
当我在一堆图像上运行它时,它运行12次然后缩小,而在模拟器上运行没有问题.你们有什么想法吗?
假设,我有一个依赖于某个库的开源项目,必须修补它才能解决一些问题.我怎么做?我的想法是:
一个不错的解决方案是使用修补的库源创建一个独特的项目,并使用-patched限定符将其部署在本地/企业存储库中.但这不适合开源项目,任何检查其来源的人都可以轻松构建.或者我应该只说"并且,在构建我的项目之前,请检查那些东西并运行mvn install".
我已经编程了一段时间,但从未接受过正规的计算机科学教育.我想知道是否有一个资源超过了关键编程概念,如构造,多态等,这些资源适用于不同的语言.如果资源提供示例,它也会非常有用.
我知道这很简单,我不记得最好的办法.我有一个输入" 5 15 "
,它定义了2D矢量数组的x和y.我只需要将这两个数字放入int col
和int row
.
最好的方法是什么?我正在尝试使用stringstreams,但无法弄清楚正确的代码.
谢谢你的帮助!
关于Eclipse中的键盘快捷键有很多关于SO的问题,但我总是想知道是否存在一个基础逻辑来决定哪些快捷键是ctrl+ alt+ [某些字母],哪些只是ctrl+ [某些字母]显然需要使用各种组合,因为键盘上只有很多键,但为什么,例如,"添加导入" ctrl+ shift+ m,而"提取方法"是alt+ shift+ m,而不是另一种方式?
我认为如果这些决策存在一些潜在的逻辑,那么它将更容易记住更多的快捷方式,而无需通过巨大的右键单击菜单来查找它们,我也不会经常使用错误的方法.
我正在尝试在C#项目中使用.NET HttpListener.当我注册我的前缀"http://*:8080 /"时,它似乎不适用于HTTPS网址(即不提取它们).当我尝试以下代码来注册前缀的HTTP和HTTPS版本时,我得到错误:
"无法监听前缀'https://:8080 /',因为它与计算机上的现有注册冲突."*
如何让我的前缀适用于HTTP和HTTPS?
private HttpListener _listener;
// Create prefixes
var prefixes = new List<string>();
prefixes.Add("http://*:8080/");
prefixes.Add("https://*:8080/");
// Create HttpListener
_listener = new HttpListener();
foreach (string prefix in prefixes)
{
_listener.Prefixes.Add(prefix);
}
_listener.Start(); // <== ERROR HERE
Run Code Online (Sandbox Code Playgroud)
编辑1 - 补充说明:
谢谢
GC.KeepAlive()
引用指定的对象,这使得它不符合从当前例程的开始到调用此方法的点的垃圾收集.
不确定GC.KeepAlive除了简单地存储引用之外还做什么,以便垃圾收集器不收集对象.但是在对象上调用GC.KeepAlive()会永久保持对象不被收集吗?或者你必须经常重新调用GC.KeepAlive()(如果是这样,经常)?我想保持我的键盘钩活着.