小编Ned*_*der的帖子

iPhone或iPod Touch可以与同一房间内的其他设备通信吗?

我是开发iPhone和iPod touch应用程序的新手.是否可以使用WiFi甚至iPhone上的BlueTooth直接在同一房间的2台设备之间进行通信?

我已经看过一个火灾应用程序的演示,其中一个iPhone在彼此靠近时"点亮"其他iPhone.这是如何完成的?

所有这一切的关键在于我正在探索开发一款游戏的选择,你可以在同一个房间里与另一个人一起玩.

iphone cocoa-touch social-networking ipod-touch

6
推荐指数
2
解决办法
4785
查看次数

Objective-C垃圾收集中的自有对象

我想知道在内存托管代码中,对象不属于任何特定所有者,即自己释放的对象的情况,建议使用哪些方法.一个这样的例子可以是NSWindowController的子类,它配置,显示和管理单个窗口的输入和输出.控制器对象显示一个窗口,稍后在某个时刻释放(通常在它管理的窗口或工作表关闭时).AppKit也提供了几个例子:NSAnimation在startAnimation中保留自己,并在动画完成时自行释放.另一个例子是NSWindow,可以配置为在关闭时释放自己.

当我自己实现这些"自有"对象时,我看到至少三种不同的GC安全模式,但它们都有一些缺点.

一个).使用CFRetain/CFRelease.

自有对象在开始运行之前调用CFRetain(例如,在窗口显示之前的窗口控制器示例中).然后它在完成后调用自己的CFRelease()(例如在窗口关闭后的窗口控制器示例中).

优点:对象的用户不必担心内存管理.
缺点:有点难看,因为需要使用内存管理功能,尽管我们在纯ObjC代码中使用GC.如果未调用CFRelease(),则可能难以找到泄漏.

B).使用静态数据结构避免自我拥有成语.

Object在开始操作之前将其自身添加到数据结构(例如静态可变数组)中,并在完成时将其自身移除.

优点:对象的用户不必担心内存管理.没有调用内存管理功能.对象有明确的所有者.潜在的泄漏很容易找到.
缺点:如果可以从不同的线程创建对象,则需要锁定.额外的数据结构.

C).通过要求对象的用户保存对象的引用(例如,进入ivar)来避免自我所有权习惯用法.

优点:没有调用内存管理功能.对象有明确的所有者.
缺点:即使对象不再需要该对象,该对象的用户也必须保留引用.额外的伊娃.

你会用什么模式处理这些案件?

cocoa garbage-collection objective-c

6
推荐指数
2
解决办法
1160
查看次数

如何在保留html标签/结构的同时在html中查找/替换文本

我使用正则表达式来转换文本,但我想保留HTML标记.例如,如果我想用"堆栈下溢"替换"堆栈溢出",这应该按预期工作:如果输入是stack <sometag>overflow</sometag>,我必须获得stack <sometag>underflow</sometag>(即字符串替换完成,但标签仍然存在...

html python html-parsing

6
推荐指数
1
解决办法
3766
查看次数

如何同时分配许多Moose属性?

我逐渐使Moose-ifying一些代码从管道分界线读取,分割每个并分配使用哈希切片将它们添加到哈希.

我已经将哈希变成了Moose类,但现在我不知道如何快速将文件中的字段分配给类的属性(如果有的话).

我知道我可以很容易地做到:

my $line = get_line_from_file;
my @fields = split /\|/, $line;
my $record = My::Record->new;
$record->attr1($fields[0]);
...
Run Code Online (Sandbox Code Playgroud)

但我希望快速一个班轮一次性分配所有属性,有点类似于:

my $line = get_line_from_file;
my %records;
@records{@field_names} = split /\|/, $line;
Run Code Online (Sandbox Code Playgroud)

我读过有关强制的内容,但据我所知,这不是我所追求的.

可能吗?

谢谢

perl attributes moose

6
推荐指数
2
解决办法
387
查看次数

解析/标记包含SQL命令的字符串

是否有任何开源库(任何语言,python/PHP首选)将ANSI SQL字符串标记/解析为其各种组件?

也就是说,如果我有以下字符串

 SELECT a.foo, b.baz, a.bar
 FROM TABLE_A a
 LEFT JOIN TABLE_B b
 ON a.id = b.id
 WHERE baz = 'snafu';
Run Code Online (Sandbox Code Playgroud)

我会找回类似的数据结构/对象

 //fake PHPish 
 $results['select-columns']  = Array[a.foo,b.baz,a.bar];
 $results['tables']    = Array[TABLE_A,TABLE_B];
 $results['table-aliases'] = Array[a=>TABLE_A, b=>TABLE_B];
 //etc...
Run Code Online (Sandbox Code Playgroud)

重申一下,我正在寻找数据库包中的代码,它将SQL命令分开,以便引擎知道如何处理它.搜索互联网会产生很多关于如何使用SQL解析字符串的结果.那不是我想要的.

我意识到我可以浏览一个开源数据库的代码来找到我想要的东西,但我希望能做一些更准备好的东西,(虽然如果你知道在MySQL,PostgreSQL,SQLite源代码的哪个地方,请随意通过它一起)

谢谢!

php python sql parsing tokenize

6
推荐指数
1
解决办法
1220
查看次数

编程珍珠 - 随机选择算法

编程珍珠第1版提出了这种算法,用于从N个整数的群体中选择M个等概率的随机元素.

InitToEmpty
Size := 0
While Size < M do
  T := RandInt(1,N)
  if not Member(T)    
     Insert(T)
     Size := Size + 1
Run Code Online (Sandbox Code Playgroud)

据称,只要M <N/2,预期会员测试的数量小于2M.

我想知道如何证明它,但我的算法分析背景让我失望.

我理解M越接近N,程序将花费的时间越长,因为结果集将具有更多元素,并且RandInt选择现有元素的可能性将按比例增加.

你能帮我弄清楚这个证明吗?

algorithm

6
推荐指数
1
解决办法
724
查看次数

我可以在vim中为快速修复窗口提供不同的状态行吗?

我想给Quick Fix窗口提供一个与其他所有窗口不同的状态行.

我希望它有:

set statusline=\ %n\ \ %f%=%L\ lines\ 
Run Code Online (Sandbox Code Playgroud)

当我在快速修复窗口中时,我可以使用:setlocal,但是如果在我的.vimrc中我可以使它具有不同的状态行?

vim statusline

6
推荐指数
1
解决办法
657
查看次数

Python:嵌套for循环或"next"语句

我是一个新手爱好者,当我编写python时,我会为循环嵌套,如下所示:

dict = {
    key1: {subkey/value1: value2} 
    ... 
    keyn: {subkeyn/valuen: valuen+1}
    }

for key in dict:
    for subkey/value in key:
       do it to it
Run Code Online (Sandbox Code Playgroud)

我知道一个"下一个"关键字可以在一行中完成相同的目标(我问了一个关于如何使用它的问题,但我不太了解它).

所以对我来说,嵌套的for循环更具可读性.为什么,然后人们使用"下一个"?我在某处读到Python是一种动态类型和解释型语言,因为+既支持字符串又对数字求和,它必须检查每个循环迭代的变量类型,以便知道运算符是什么,等等.使用"next"阻止这在某种程度上加快了执行速度,还是只是风格/偏好的问题?

python optimization for-loop

6
推荐指数
1
解决办法
8771
查看次数

jQuery:通过ajax获取JSON,但使用POST而不是GET

我正在使用jQuery的$ .ajax使用JSONP向第三方服务器发出请求.我将方法指定为POST,但它仍然使用GET:

    $.ajax({
        type: "POST",
        dataType: "json",
        url: other_server + "/run?callback=?",
        data: {
            code: $(code).val()
        },
        success: function(obj) {
            var res = obj.results;
            $(results).val(res);
        }
    });
Run Code Online (Sandbox Code Playgroud)

查看jQuery源代码,我看到这两行似乎强制所有跨域请求都是GET,但我不明白为什么需要如此:

if ( s.crossDomain ) {
    s.type = "GET";
Run Code Online (Sandbox Code Playgroud)

是否可以使用POST而不是GET执行此操作?为什么jQuery强制使用GET?

ajax jquery jsonp

6
推荐指数
1
解决办法
2235
查看次数

PIL在保存时更改像素值

这很简单.制作RGB图像,一个像素大.将像素值设置为(a,b,c).保存.问题是,保存的图像具有与(a,b,c)不同的像素值.通常,在其中一个通道上使用+ -1,就好像它是随机噪声,但它的一致性.下面是代码:

from PIL import Image
newImg = Image.new('RGB', (1,1), "black")
pixels = newImg.load()
pixels[0,0] = (0,3,0)
newImg.save("point.jpg")
savedImage = Image.open("point.jpg")
pixelsSaved = savedImage.load()

print pixels[0,0]
print pixelsSaved[0,0]
Run Code Online (Sandbox Code Playgroud)

这个输出是:(0,3,0)(1,3,0)

一致.

如果我使用(4,2,0)作为要保存的像素,则输出为:(4,2,0)(3,2,0)

和(0,10,0)给出:(0,10,0)(0,10,1)

例如.

为什么保存时价值会发生变化?我该如何预防呢?请帮忙.

谢谢.

python image save python-imaging-library

6
推荐指数
2
解决办法
4123
查看次数