我发现Objective-C/cocoa框架的一个例子有以下代码.
int main()
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
// Create an array
NSArray *month = [NSArray arrayWithObjects:@ ... nill];
[pool drain];
}
Run Code Online (Sandbox Code Playgroud)
Q1:这背后的魔力是什么(为什么我需要NSAutoreleasePool代码?)?NSAutoreleasePool和pool drain块之间发生了什么魔力?我觉得我不需要释放*month自己.这是因为它在NSAutoreleasePool和pool drain块内吗?
Q2:使用Xcode,我已经获得了main()函数.在这种情况下,我该如何使用NSAutoreleasePool和pool drain?
例如 :
int main(int argc, char *argv[])
{
//NSAutoreleasePool *pool = [[[NSAutoreleasePool] alloc] init];
return NSApplicationMain(argc, (const char **) argv);
}
Run Code Online (Sandbox Code Playgroud) 我试图将32位应用程序移植到64位.计算似乎正确运行,但我无法正确配置视图.我在W7 x64机器上使用VS2005内的MFC,C++和OpenGL,Intel 10.0.027编译器.
当崩溃发生时,我收到以下消息:"3DApp.exe中0xffffffff8043b1b6的第一次机会异常:0xC0000005:位置0xffffffff8043b1b6处的访问冲突",这是堆栈跟踪:
ffffffff8043b1b6()
user32.dll!UserCallWinProcCheckWow() + 0x11d bytes
user32.dll!DispatchMessageWorker() + 0x12a bytes
3DApp.exe!AfxInternalPumpMessage() Line 183 C++
3DApp.exe!CWinThread::PumpMessage() Line 896 C++
3DApp.exe!CWinThread::Run() Line 625 + 0x13 bytes C++
Run Code Online (Sandbox Code Playgroud)
注意请问为什么UserCallWinProcCheckWow被调用,我认为Wow后缀仅用于在64位计算机上模拟32位应用程序
显然,某处64位指针被视为32位指针,但我不能指出发生的位置.我从microsoft加载了调试符号,它显示了调用堆栈的顶部.
任何帮助非常感谢.莱昂
编辑
调用DispatchMessage的代码是:
if (pState->m_msgCur.message != WM_KICKIDLE && !AfxPreTranslateMessage(&(pState->m_msgCur)))
{
::TranslateMessage(&(pState->m_msgCur));
::DispatchMessage(&(pState->m_msgCur));
}
Run Code Online (Sandbox Code Playgroud)
在这个阶段,pState的指针似乎是64位.
pState-> m_msgCu的状态:
我目前正在进行实时搜索,我需要能够在两列中找到名称的一部分(我们需要分隔名字和姓氏).我个人希望保持命令简短,但是我能够让它工作的唯一方法是:
用户搜索
John Doe
Run Code Online (Sandbox Code Playgroud)
生成的SQL查询
SELECT * FROM users WHERE
(first_name LIKE '%john%' OR last_name LIKE '%john%') AND
(last_name LIKE '%doe%' OR last_name LIKE '%doe%');
Run Code Online (Sandbox Code Playgroud)
搜索字段是一个框,所以我做了一些简单的空格分隔.大多数情况下这不会超出三套条款,只是想知道是否有更好的方法来做到这一点.
注意: 我希望能够进行部分匹配.所以如果我找"John Do",我应该能找到John Doe
解决方案 在Rolando的帮助下,我确实提出了一个解决方案,发布给其他发现此问题的人.按照他的说明如何在下面创建索引,然后运行:
SELECT * FROM users WHERE
(MATCH(first,last) AGAINST ('+john* +do*' IN BOOLEAN MODE))
Run Code Online (Sandbox Code Playgroud) 安装ADT插件后,以下构建器对于Android项目处于活动状态:
查看输出目录,将创建以下工件:
对于我的项目,我自动生成了几个代码工件,并且通常需要更严格地控制构建过程.首先,我认为资源管理器负责创建resources.ap_,预编译器创建了R.java,java builder显而易见,然后Android Package Builder创建了classes.dex,然后组合了classes.dex和resources.ap_创建APK文件.
我禁用了前两个步骤并创建了一个自定义的预构建器,它构建了一个resources.ap_的副本,认为这是等效的.没有这样的运气.
不幸的是,最终的Android Package Builder似乎直接从res /中啜饮了资源而忽略了我的resources.ap_.实际上,除了生成R.java之外,前两个构建步骤似乎没有做太多其他工作.
这是它真正成问题的地方.如果我禁用最后的构建步骤并放下我自己的APK文件(具有完全相同的名称),我会收到以下错误:
[2011-02-27 20:25:28 - android-premium] ------------------------------
[2011-02-27 20:25:28 - android-premium] Android Launch!
[2011-02-27 20:25:28 - android-premium] adb is running normally.
[2011-02-27 20:25:28 - android-premium] Could not find android-premium.apk!
Run Code Online (Sandbox Code Playgroud)
所以我陷入困境:使用Android Package Builder(没有可辨别的配置),我必须提供单独的./res/文件.没有它,我无法让项目在设备上启动(而不是从Eclipse).
在这个领域,任何人都有更好的想法/经验吗?
我正在尝试使用带有以下代码的Itext在表格中的单元格(pdf)中打印阿拉伯文本
Font f = FontFactory.getFont("C:\\Windows\\Fonts\\arabtype.ttf");
t.addCell(new Cell(new Phrase(name,f)));
Run Code Online (Sandbox Code Playgroud)
凡名字是阿拉伯语文字,但它打印"????" 而不是阿拉伯文本
HI,
对于标记,您可以通过href或onclick执行javascript.
我何时应该使用onclick而不是href?
对我来说,只有onclick的优点是你可以隐藏访问者的javascript函数名称和参数.
我正在为GWT尝试一个非常JUnit测试,因为它失败了
public class CheckTest extends TestCase
{
private ServiceAsync RPC;
private HandlerManager EventBus;
private CreateTopicPresenter.Display CTV;
private CreateTopicPresenter CTP;
protected void setUp()
{
RPC= createStrictMock(ServiceAsync.class);
EventBus = new HandlerManager(null);
CTV= createStrictMock(CreateTopicView.class);
CTP= new CreateTopicPresenter(CTV,RPC,EventBus);
}
public void testCheck()
{
CTP.View.getFirstMessage().setValue("MessageTest");
assertTrue(CTP.View.getFirstMessage().getValue().equals("MessageTest"));
}
Run Code Online (Sandbox Code Playgroud)
堆栈跟踪:
java.lang.ExceptionInInitializerError
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at net.sf.cglib.proxy.Enhancer.setCallbacksHelper(Enhancer.java:619)
at net.sf.cglib.proxy.Enhancer.setThreadCallbacks(Enhancer.java:612)
at net.sf.cglib.proxy.Enhancer.registerCallbacks(Enhancer.java:581)
at org.easymock.internal.ClassProxyFactory.createProxy(ClassProxyFactory.java:194)
at org.easymock.internal.MocksControl.createMock(MocksControl.java:60)
at org.easymock.EasyMock.createStrictMock(EasyMock.java:70)
at com.BiddingSystem.client.CheckTest.setUp(CheckTest.java:26)
at junit.framework.TestCase.runBare(TestCase.java:128)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:120)
at junit.framework.TestSuite.runTest(TestSuite.java:230)
at …Run Code Online (Sandbox Code Playgroud) Html.Label和之间有什么区别Html.Display?
在查看一些旧代码时,我们遇到了以下代码:
lock (System.Threading.Thread.CurrentThread) // Critical Section - no interrupting.
Run Code Online (Sandbox Code Playgroud)
我们的第一个反应是"WTF" - 代码锁定在当前线程上,这是每个线程上的一个不同的对象(除了在递归的情况下,这将是愚蠢的锁定,然后).看起来这个锁没有任何用途.我们想知道这是否确实是WTF,或者它是否真的有用.
android ×2
64-bit ×1
adt ×1
ant ×1
arabic ×1
asp.net-mvc ×1
build ×1
c# ×1
c++ ×1
cocoa ×1
eclipse ×1
gwt ×1
href ×1
html ×1
html-helper ×1
itext ×1
java ×1
junit ×1
locking ×1
mfc ×1
mysql ×1
objective-c ×1
onclick ×1
search ×1
sync ×1
unit-testing ×1
visual-c++ ×1
where-clause ×1
wildcard ×1