我知道如何在iPhone上进行单元测试 - 在"iPhone单元测试包"的构建阶段运行的逻辑测试.
我知道如何使用仪器检测内存泄漏 - 在XCode,Menu-> Run-> run with perf tools-> Leaks.
我怎么做两个?我想运行单元测试并检测其中的内存泄漏.如果我尝试简单地选择单元测试包作为目标,然后"菜单 - >运行 - >运行perf工具 - >泄漏"我在模拟器中加载应用程序,但单元测试没有运行.
我能想到的最好的方法是将相同的单元测试文件包含到我真正的应用程序目标中,并在运行时从应用程序本身简单地调用它们.有更好的想法吗?
我访问一个使用名为session_id的变量的REST api服务.API要求将其存储在cookie中,我按如下方式完成此操作:
$ch = curl_init(); // initialize curl handle
curl_setopt($ch, CURLOPT_URL, $url); //set target URL
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);// allow redirects
curl_setopt($ch, CURLOPT_COOKIEFILE, './Cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEJAR, './Cookie.txt');
curl_setopt($ch, CURLOPT_POST, TRUE); // set POST method
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); //set headers
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, TRUE); //return the headers so we can get session id
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, FALSE); //prevent unverified SSL certificate error
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE); //prevent unverified SSL ""
$contents = curl_exec($ch);
curl_close($ch);
Run Code Online (Sandbox Code Playgroud)
现在的问题是许多不同的用户在很多不同的时间调用它.(必须保存许多不同的cookie文件)我想要一种简单地将session_id存储在变量中而不是引用cookie文件的方法.到目前为止,我的所有尝试都被服务拒绝了.任何人都可以建议存储会话ID和cookie信息的方法,而不保存到文件?请注意,读取会话ID没有问题,它以XML格式返回.由于某种原因,在不引用实际生成的文件的情况下将其传回但未通过安全凭证.关于为什么会这样做的任何更多信息也会有所帮助.
Excel VBA的查找与二进制搜索有多好/多快?我的平台是Office 11 | 2003,我将在三张值上搜索A列的字符串.行总数~14万
如果值得我参考哪个库和函数进行排序然后进行二分查找?据报道,二进制搜索字符串/文本存在潜在问题.
......必须注意一件事.使用带有sortedtext的二进制搜索公式需要谨慎. Aladin A.,Excel MVP
Excel查找:
Worksheets(1).Range("A:A").Find("PN-String-K9", LookIn:=xlValues, LookAt:=xlWhole)
Run Code Online (Sandbox Code Playgroud) 我已经创建了我的应用程序的临时版本,并希望其他人安装它.我在配置文件中有他们的设备ID(实际上是两个).我的证书与临时和应用商店配置相同.证书在钥匙串中有效.我在Xcode中为此构建选择了ad hoc配置文件,该配置链接到分发证书.
我向用户发送配置文件和.app文件.他们将两者都放入iTunes并同步,然后在两台设备上都出现此错误:
The application "myapp" was not installed on the iPhone "user's iPhone" because the signer is not valid.
Run Code Online (Sandbox Code Playgroud)
我从我的iPhone中删除了所有配置文件,将上述两个文件放入iTunes,同步并成功安装了应用程序.我不能让它为我重复.我需要在本地重新解决这个问题以找出问题所在.有什么想法可以做到吗?
我很难在这段代码中匹配大括号.它一直指示"else"而没有"if"错误,但不确定语法应该如何读取.如果有人可以提供帮助,那将非常感激.这是代码:
private void compileFactor() {
boolean its_a_variable = theInfo.isVar();
if (isIdent(theToken)) {
String ident = theToken;
theToken = t.token(); // handles var and const cases!
IdentInfo theInfo = symTable.lookup(ident);
}
boolean its_a_variable = theInfo.isVar();
int theAddr = theInfo.getAddr();
boolean isGlobal = theInfo.getIsGlobal();
int constValue = theInfo.getValue();
if (its_a_variable) { // pld12: CHANGE THIS!!
int theAddr = theInfo.getAddr();
boolean isGlobal = theInfo.getIsGlobal();
if (theAddr == -1) t.error("undeclared identifier used in expr: "+ident);
if (isGlobal) cs.emit(Machine.LOAD, theAddr);
else cs.emit(Machine.LOADF, theAddr);
} else …Run Code Online (Sandbox Code Playgroud) 我有一个基于Pylons的Web应用程序,它通过Sqlalchemy(v0.5)连接到Postgres数据库.为了安全起见,而不是遵循简单的Web应用程序的典型模式(如几乎所有教程中所见),我没有使用通用的Postgres用户(例如"webapp"),但要求用户输入他们自己的Postgres用户ID和密码,并使用它来建立连接.这意味着我们可以获得Postgres安全性的全部好处.
更复杂的是,有两个独立的数据库可以连接.虽然它们目前位于同一个Postgres集群中,但它们需要能够在以后转移到单独的主机.
我们正在使用sqlalchemy的声明包,但我看不出这与此有关.
sqlalchemy的大多数示例都显示了一些简单的方法,例如在应用程序启动时使用通用Web用户和密码设置元数据,通过Web应用程序使用.这通常使用Metadata.bind = create_engine()完成,有时甚至在数据库模型文件中的模块级别完成.
我的问题是,在用户登录之前,我们如何推迟建立连接,然后(当然)为每个后续请求重新使用这些连接,或者使用相同的凭证重新建立连接.
我们有这个工作 - 我们认为 - 但我不仅不确定它的安全性,我还认为它看起来非常重.
里面__call__的BaseController的方法,我们从Web上获得会话每个数据库的用户名和密码,调用SQLAlchemy的create_engine()一次,然后调用它调用Session.bind_mapper(常规)多次,一次为每个表可在每个被引用这些连接,即使任何给定的请求通常只引用一个或两个表.它看起来像这样:
# in lib/base.py on the BaseController class
def __call__(self, environ, start_response):
# note: web session contains {'username': XXX, 'password': YYY}
url1 = 'postgres://%(username)s:%(password)s@server1/finance' % session
url2 = 'postgres://%(username)s:%(password)s@server2/staff' % session
finance = create_engine(url1)
staff = create_engine(url2)
db_configure(staff, finance) # see below
... etc
# in another file
Session = scoped_session(sessionmaker())
def db_configure(staff, finance):
s = Session()
from db.finance import …Run Code Online (Sandbox Code Playgroud) 加载转储文件[C:\ Crash_Mode__Date_12-05-2009__Time_15-54-2727\PID-4056__CCNET.EXE__1st_chance_Process_Shut_Down__full_13d0_2009-12-06_00-33-14-734_0fd8.dmp]具有完整内存的用户迷你转储文件:仅提供应用程序数据
注释:'1st_chance_Process_Shut_Down_exception_in_CCNET.EXE_running_on_TEST218'符号搜索路径为:srv E:\ symbols http://msdl.microsoft.com/download/symbols 可执行搜索路径为:
Windows Server 2003版本3790(Service Pack 2)MP(2 procs)免费x64产品:服务器,套件:企业TerminalServer SingleUserTS机器名称:
调试会话时间:Sun Dec 6 00:33:14.000 2009(GMT + 8)
系统正常运行时间:32天12:43:52.414
处理正常运行时间:0天8:44:37.000
..........................警告:mscorjit与mscoree重叠
..............................警告:wldap32与dnsapi重叠
..........警告:rasapi32与dnsapi重叠
...警告:tapi32与rasapi32重叠
.警告:rtutils与rasman重叠
..............警告:setupapi与winsta重叠
.... wow64cpu!CpupSyscallStub + 0x9:
00000000`78b842d9 c3 ret
为什么会这样?
我对C++ 0x的一些新功能有点好奇.特别是基于范围的for循环和初始化列表.这两个功能都需要用户定义的类才能正常运行.
我来到这篇文章,虽然最佳答案很有帮助.我不知道它是否完全正确(我可能只是完全误解,见第一个答案的第3条评论).根据初始化列表的当前规范,标头定义了一种类型:
template<class E> class initializer_list {
public:
initializer_list();
size_t size() const; // number of elements
const E* begin() const; // first element
const E* end() const; // one past the last element
};
Run Code Online (Sandbox Code Playgroud)
您可以在规范中看到这一点,只需按Ctrl + F'class initializer_list'.
为了= {1,2,3}隐式铸造成initializer_list类,编译器有关系的一些知识{}和initializer_list.没有构造函数接收任何东西,所以我可以告诉initializer_list是一个包装器,它被绑定到编译器实际生成的任何东西.
它与for( : )循环相同,它还需要用户定义的类型才能工作(尽管根据规范,更新后不需要任何代码用于数组和初始化程序列表.但初始化程序列表需要<initializer_list>,因此它是用户定义的代码要求代理).
我完全误解了这是如何工作的吗?我认为这些新功能在很大程度上依赖于用户代码,我并没有错.感觉好像功能是半生不熟的,而不是将整个功能构建到编译器中,而是由编译器完成一半,在包含中完成一半.这是什么原因?
编辑:我输入'严重依赖编译器代码',而不是'严重依赖用户代码'.我认为这完全抛弃了我的问题.我的困惑不在于编译器内置的新功能,而是依赖于用户代码的内置于编译器中的东西.
iphone ×2
xcode ×2
adhoc ×1
c++ ×1
c++11 ×1
curl ×1
excel ×1
excel-vba ×1
google-maps ×1
if-statement ×1
itunes ×1
objective-c ×1
php ×1
postgresql ×1
pylons ×1
python ×1
rdf ×1
rest ×1
semantic-web ×1
sorting ×1
sqlalchemy ×1
vba ×1
windbg ×1