我想创建一个钩子方法,每次调用类的任何函数时都会调用它.我已经尝试过method_added,但它只在类定义时执行一次,
class Base
def self.method_added(name)
p "#{name.to_s.capitalize} Method's been called!!"
end
def a
p "a called."
end
def b
p "b called."
end
end
t1 = Base.new
t1.a
t1.b
t1.a
t1.b
Output:
"A Method's been called!!"
"B Method's been called!!"
"a called."
"b called."
"a called."
"b called."
Run Code Online (Sandbox Code Playgroud)
但我的要求是在程序中的任何地方调用的类的任何函数都会触发"method_called",钩子方法.
Expected Output:
"A Method's been called!!"
"a called."
"B Method's been called!!"
"b called."
"A Method's been called!!"
"a called."
"B Method's been called!!"
"b called."
Run Code Online (Sandbox Code Playgroud)
如果有任何已定义的现有钩子方法可以正常工作,那么请告诉它.
提前致谢..
我在Android上制作游戏,当用户尝试长按屏幕时我需要执行某些操作.不幸的是我没有找到任何直接使用自定义SurfaceView的方法,随时告诉我这种方法是否存在:)
所以我决定尝试从onTouch事件监听器实现长触摸检测.
这是我的代码:
@Override
public boolean onTouch(View v, MotionEvent event)
{
long touchDuration = 0;
if ( event.getAction() == MotionEvent.ACTION_DOWN )
{
//Start timer
touchTime = System.currentTimeMillis();
}else if ( event.getAction() == MotionEvent.ACTION_UP )
{
//stop timer
touchDuration = System.currentTimeMillis() - touchTime;
if ( touchDuration < 800 )
{
onShortTouch(event,touchDuration);
}else
{
onLongTouch(event,touchDuration);
}
}
}
return true;
Run Code Online (Sandbox Code Playgroud)
这是有效的,但只有当用户停止触摸手机时,我才能检测到印刷机是否长按.所以这不是我想要的.我更喜欢当用户第一次触摸屏幕时启动计时器,然后一旦经过800毫秒就调用LongTouch()方法.换句话说,我不想检查自ACTION_DOWN以来ACTION_UP已经过了多长时间.我相信我应该为所述计时器使用一个线程,但我不能让它工作.使用以下代码时,只要触摸屏幕就会显示调试消息:
@Override
public boolean onTouch(View v, MotionEvent event)
{
long touchDuration = 0;
TouchThread touchThread = new TouchThread();
if ( event.getAction() == …Run Code Online (Sandbox Code Playgroud) 我有以下(最小化)代码,它在VC2005中有效,但在2010年不再有效.
template <typename TDataType>
class TSpecWrapper
{
public:
typedef typename TDataType::parent_type index_type;
public:
template <bool THasTriangles>
void Spec(index_type& io_index)
{ std::cout << "False version" << std::endl; }
template <>
void Spec<true>(index_type& io_index)
{ std::cout << "True version" << std::endl; }
};
Run Code Online (Sandbox Code Playgroud)
似乎当"index_type"是一个依赖类型时,我总是在特化上得到一个C2770:无效的显式模板参数错误.请注意,此代码实际上足以生成错误 - 空的main足以编译它,模板甚至不需要实例化.
如果index_type不是依赖类型,它可以正常工作.任何想法为什么在VC2010中如此,如果这实际上是标准行为或错误,并且我可以解决它?
我有一个表命名为"大师"的柱子id,name,surname,gender,和 designation
当我触发查询以获取CursorAdapter的Cursor对象时,我得到:
IllegalArgumentException: column '_id' does not exist when call to CursorAdaptor
Run Code Online (Sandbox Code Playgroud)
但我没有名为"_id"的columen.
谁能告诉我为什么会收到这个错误?
这是堆栈跟踪:
07-13 15:45:40.582: WARN/System.err(295): java.lang.IllegalArgumentException: column '_id' does not exist
07-13 15:45:40.592: WARN/System.err(295): at android.database.AbstractCursor.getColumnIndexOrThrow(AbstractCursor.java:314)
07-13 15:45:40.592: WARN/System.err(295): at android.widget.CursorAdapter.changeCursor(CursorAdapter.java:257)
07-13 15:45:40.602: WARN/System.err(295): at com.praumtech.names4baby.ui.NamesListAdapter.setCursor(NamesListAdapter.java:63)
07-13 15:45:40.602: WARN/System.err(295): at com.praumtech.names4baby.ui.BoysNamesListActivity.initNameList(BoysNamesListActivity.java:79)
07-13 15:45:40.602: WARN/System.err(295): at com.praumtech.names4baby.ui.BoysNamesListActivity.onCreate(BoysNamesListActivity.java:49)
07-13 15:45:40.602: WARN/System.err(295): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)
07-13 15:45:40.602: WARN/System.err(295): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2364)
07-13 15:45:40.612: WARN/System.err(295): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2417)
07-13 15:45:40.612: WARN/System.err(295): …Run Code Online (Sandbox Code Playgroud) 我正在使用Python的pyquery抓取一个页面,我对它返回的类型感到困惑,特别是如何迭代结果列表.
如果我的HTML看起来像这样:
<div class="formwrap">blah blah <h3>Something interesting</h3></div>
<div class="formwrap">more rubbish <h3>Something else interesting</h3></div>
Run Code Online (Sandbox Code Playgroud)
如何<h3>逐个获取标签内部,以便我可以处理它们?我尝试着:
results_page = pq(response.read())
formwraps = results_page(".formwrap")
print type(formwraps)
print type([formwraps])
for my_div in [formwraps]:
print type(my_div)
print my_div("h3").text()
Run Code Online (Sandbox Code Playgroud)
这会产生:
<class 'pyquery.pyquery.PyQuery'>
<type 'list'>
<class 'pyquery.pyquery.PyQuery'>
Something interesting something else interesting
Run Code Online (Sandbox Code Playgroud)
看起来似乎没有实际的迭代.如何单独拉出每个元素?
来自新手的额外问题:周围的方括号是[a]什么?看起来它将一个特殊的Pyquery对象转换为一个列表.是[]标准的Python运算符吗?
------更新--------
我在pyquery文档中找到了'each' 函数.但是,我不明白如何将它用于我想要的东西.说我只想打印出来的内容<h3>.这会产生语法错误:为什么?
formwraps.each(lambda e: print e("h3").text())
Run Code Online (Sandbox Code Playgroud) 可能重复:
在Java中构建一系列分隔项的最佳方法是什么?
Java:将List <String>转换为join()d字符串
在Java中,给定一个集合,获取迭代器并为第一个(或最后一个)元素执行单独的大小写,其余的以获取逗号分隔的字符串看起来相当沉闷,是否有类似于str.joinPython的东西?
进一步澄清,以避免它被重复关闭:我宁愿不使用像Apache Commons这样的外部库.
谢谢!
我正在使用MySql处理Grails 1.3.2.我需要在数据库中存储某些位置的纬度和经度,然后根据用户的当前位置,我需要返回该位置特定半径范围内的项目.所以,我们基本上有以下要求:
我一直在研究我们在这里的各种选项,并想知道您对此有何看法/建议.我们这里有各种选择:
Lucene Spatial Search(http://wiki.apache.org/lucene-java/SpatialSearch)并研究如何使用它进行搜索
Grails Solr插件(http://www.grails.org/plugin/solr).但是这不会返回域对象.
Grails Stitches Plugin(http://www.grails.org/plugin/stitches).除了作者的网站(http://www.philliprhodes.com/content/stitches-30-seconds)之外,没有很多文档.
MySql空间扩展以及域类的所有字段上的全文索引.如果我们走这条路,那么我们就不会使用可搜索的了.
我相信这是与地图集成的任何应用程序中的一个非常基本的要求.
所以,我真的很想知道实现这个功能的最合适的方法.
谢谢
我真的很难解密PHP中给定的密文,我希望你们中的一个能够找到我在这个问题上的错误.
所以这是我正在尝试解码的字符串
Wq+J2IlE7Cug1gJNiwy1beIcFggGhn+gZHkTCQ4J/DR3OY45OMs4RXN850xbfAmy
Run Code Online (Sandbox Code Playgroud)
我知道用AES/CBC/PKCS5Padding加密了IV
2ZqVSHjqn3kMump0rvd8AA==
Run Code Online (Sandbox Code Playgroud)
我会根据要求给你发电子邮件.
public static function aes128cbcDecrypt($key, $encrypted_text, $iv)
{
$td = mcrypt_module_open(MCRYPT_RIJNDAEL_192, '', MCRYPT_MODE_CBC, '');
mcrypt_generic_init($td, $key, $iv);
$decrypted = mdecrypt_generic($td, $encrypted_text);
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
return trim($decrypted);
}
Run Code Online (Sandbox Code Playgroud)
当我尝试运行时,我得到完全的胡言乱语
ã5‡³/.3p›¤ý°$² —ïÅ»<9 ‘m ê|Ÿ.ÂYº|Šû^w¬¾‚=l“½·F›VársT~ê H?ÿfß]7ñH
Run Code Online (Sandbox Code Playgroud)
同样,当我加密已知的纯文本时,我得到了一堆乱码而不是ascii字符串.
† —4†º¢V?Öæƒ{ Zsöœl ò°Þ
PegöE&£á=Ǻ܀
Run Code Online (Sandbox Code Playgroud)
你有没有想到我出错的地方?
我需要创建一个简单的Delphi应用程序,kiosk风格.
这是一个非常简单的事情,一个表单,用户写一些个人信息来注册一个事件.4 TEdit和TButton.
我想要实现的是避免用户执行任何不同的操作,然后键入TEdit或单击TButton.例如,我不希望他做ALT TAB(切换应用程序),按键盘上的Windows键,执行ctrl-alt-canc等...
我可以添加一个passowrd保护按钮来启用/禁用这个"Kiosk模式",这样我需要退出kiosk模式我只需按下该按钮然后退出.
如何在Delphi中实现这种"自助服务终端模式"而不会手动拦截所有按键?或者是否有人已经开发了这个以便它可以共享?
android ×2
python ×2
aes ×1
c++ ×1
database ×1
delphi ×1
encryption ×1
geospatial ×1
grails ×1
hook ×1
iphone ×1
java ×1
kiosk-mode ×1
long-press ×1
mcrypt ×1
php ×1
pyquery ×1
rijndael ×1
ruby ×1
string ×1
templates ×1
touch ×1
uiimageview ×1