我一直在查看StackOverflow上提出的问题,但是在Objective-C中有很多关于内存管理的内容,我找不到我想要的答案.
问题是,在将新创建的对象添加到集合(如NSMutableArray)之前,是否可以(并建议)调用autorelease?或者我应该在添加后明确地发布它.(我知道NSMutableArray会保留对象)
这说明了我的问题:
场景A(自动释放):
- (void) add {
// array is an instance of NSMutableArray
MyClass *obj = [[[MyClass alloc] init] autorelease];
[array addObject:obj];
}
Run Code Online (Sandbox Code Playgroud)
场景B(明确发布):
- (void) add {
// array is an instance of NSMutableArray
MyClass *obj = [[MyClass alloc] init];
[array addObject:obj];
[obj release];
}
Run Code Online (Sandbox Code Playgroud)
我认为两者都是正确的,但我不确定,我肯定不知道什么是优先的方式.
Objective-C大师可以对此有所了解吗?
我在Codeigniter中测试控制器时遇到了困难:我使用Toast但是当我调用Home Controller类时,我得到一个异常,即"db"未定义.有谁知道如何测试这个1-1?
谢谢
class Home_tests extends Toast {
function __construct() {
parent::__construct(__FILE__);
// Load any models, libraries etc. you need here
}
function test_select_user() {
$controller = new Home();
$controller->getDbUser('foo@gmail.com','password');
assert($query->num_rows() == 0 );
}
}
Run Code Online (Sandbox Code Playgroud) 我将很快开始研究我正在开发的产品的"打印"和"打印预览"功能.我没有打印机,也没有购买打印机的意图.我正在寻找可以用来测试我的打印代码的任何免费软件.
我可以用来模拟打印机的最佳免费选项是什么?我在Windows上使用GDI +,但平台独立的选项,如PDF编写者,非常受欢迎.
根据各种消息来源,寻找sha-1碰撞的攻击已经改进到2 ^ 52次操作:
http://www.secureworks.com/research/blog/index.php/2009/6/3/sha-1-collision-attacks-now-252/
我想知道的是这些发现对未受攻击的系统的影响.这意味着如果我对随机数据进行散列,那么碰撞的统计几率是多少?换句话说,最近的研究表明,蛮力生日攻击有更高的机会发现最初提出的碰撞吗?
一些文章,如上所述,表示通过暴力获得SHA-1碰撞需要2 ^ 80次操作.大多数消息来源说2 ^ 80是一个理论数字(我假设因为即使在其摘要空间上也没有完美地分配散列函数).
基本哈希分布中任何已公布的sha1冲突弱点是什么?或者只是导致数学攻击导致碰撞的几率增加?
我意识到最终它只是一场赔率游戏,并且它们是一个无限小的变化,你的第一个和第二个消息将导致碰撞.我也意识到即使是2 ^ 52也是一个非常大的数字,但我仍然想了解对不受攻击的系统的影响.所以请不要回答"不要担心".
我在DB2中创建了一个数据库,并在表中创建了关系.我想基于DB2中的数据库设计创建一个ER图.MS SQL有一个从DB模式创建ER图的工具,但DB2似乎没有,至少据我所知.
任何人都知道DB2本身的任何开源工具/工具吗?
我用jQuery来获取这样的浏览器版本:
var x = $.browser.version;
Run Code Online (Sandbox Code Playgroud)
我得到一个这样的字符串:1.9.1.1
现在,我想做一个评估,所以如果x> = 1.9.1然后做一些事情.不幸的是,有多个小数点,我不能做一个parseFloat(),因为它将1.9.1.1转换为1.9,if if评估将匹配1.9.0版本(我不想要).
有人找到了一种方法来完成将版本号(带有多个小数)转换为可用作评估数字的东西(或其他一些方法来完成我在这里尝试做的事情)?
谢谢 -
我的应用程序(VC MFC)运行gflags启用Pageheap以跟踪页面堆损坏.
现在应用程序崩溃并显示此错误,我无法解释这些行(除了感觉资源的可用性)
任何人都可以了解造成应用程序崩溃的原因究竟是什么?
(info:应用程序是一个多线程的应用程序,在多处理器计算机中运行大约500个线程)
kernel32!RaiseException+53
msvcrt!_CxxThrowException+36
mfc42u!AfxThrowResourceException+19
mfc42u!AfxRegisterWndClass+ab
mfc42u!CAsyncSocket::AttachHandle+5c
mfc42u!CAsyncSocket::Socket+25
mfc42u!CAsyncSocket::Create+14
Run Code Online (Sandbox Code Playgroud) 我正在使用GServer和TCPSocket开发Ruby TCP客户端/服务器应用程序.我遇到了一个我不明白的问题.我的TCPSocket客户端成功连接到我的GServer,但我只能使用puts发送数据.调用TCPSocket.send或TCPSocket.write什么都不做.我缺少一些魔法吗?
tcp_client = TCPSocket.new( ipaddr, port )
tcp_client.puts( 'Z' ) # -> GServer receives "Z\n"
Run Code Online (Sandbox Code Playgroud)
但如果我使用写或发送...
tcp_client = TCPSocket.new( ipaddr, port )
tcp_client.write( 'Z' ) # -> nothing is received
tcp_client.send( 'Z' ) # -> nothing is received
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助
附加信息:
我有一个用于我的支票簿的Access数据库(后面有很多相当简单的VBA),我想将它重写为带有SQL后端的独立程序.我正在考虑使用C++,Java或Python.
在我开始之前,我曾经假设我会把它写成OO,因为我认为我会想"以OO术语"(由于我采用了OO Logic类和C++类),但我发现我只能将其可视化为程序性(但可能是因为我在思考数据库如何在Access中工作时精神错乱).我该如何决定?我有意义还是看起来我不理解这些概念?
谢谢你的帮助.
通常,您为按钮单击编写处理程序,如下所示:
$(document).ready(function()
{
$("button").click(function()
{
doSomething();
});
});
Run Code Online (Sandbox Code Playgroud)
但是在事件委托者的情况下,用这样的函数响应事件:
function doSomething(event)
{
if (ev.target.id == 'button1' )
{
//do your stuff
console.log('#button1 click');
}
else
{
console.log('not a #button1 click');
}
}
Run Code Online (Sandbox Code Playgroud)
我困惑的是用于定义调用此委托函数的事件的正确语法 - 这个?(一个):
$(document).ready(function()
{
$(function()
{
$('button').click(doSomething);
});
});
Run Code Online (Sandbox Code Playgroud)
或这个?(B):
$(document).ready(function()
{
$("button").click(doSomething);
});
Run Code Online (Sandbox Code Playgroud)
哪个是正确的,为什么?
javascript ×2
jquery ×2
autorelease ×1
c++ ×1
codeigniter ×1
controller ×1
cryptography ×1
database ×1
db2 ×1
emulation ×1
erd ×1
gdi ×1
hash ×1
iphone ×1
mfc ×1
objective-c ×1
oop ×1
pageheap ×1
pdf ×1
printing ×1
procedural ×1
ruby ×1
sha1 ×1
sockets ×1
sql ×1
tcp ×1
testing ×1