我承认我已经问了一个关于this关键字及其在某些情况下意味着什么的问题,但我仍然不完全理解它,我害怕.任何提示将不胜感激.
我基本上有一个Socket类,它是HTML5的WebSocket类的包装器,使事情变得更容易(我只复制了与我的问题相关的内容):
var Socket = function(url) {
this.url = url;
this.webSocket = null;
}
Socket.prototype.init = function() {
this.webSocket = new WebSocket(this.url);
this.webSocket.onmessage = this.parseMessage;
};
Socket.prototype.parseMessage = function(event) {
console.log(this); // logs the WebSocket (native) instance
}
Run Code Online (Sandbox Code Playgroud)
在parseMessage函数中,this引用本机WebSocket对象的实例,那么如何Socket在此处访问实例到我的对象?
非常感谢.
我理解单例类只能有一个实例,但我不明白为什么这个有用.为什么不只是创建一个包含静态变量和方法的类,并在需要时使用synchronize以确保没有两个线程同时在类中执行方法.我只是不明白为什么有人会经历创造这种类的麻烦.我知道我在这里遗漏了一些东西.
谢谢,
我正在寻找构建iPhone应用程序,但我没有足够的时间来学习Objective-C.我已经了解Ruby并发现了MacRuby.是否可以单独使用MacRuby构建iPhone应用程序,而不了解Objective-C?
默认情况下,在Drupal 7中,字段描述显示在字段下方.无论如何将它们移到场上?
在Drupal 6中,您可以将以下代码粘贴到template.php中以移动描述.但是,代码在Drupal 7中不起作用:
/**
* Place CCK Options above field .
*/
function ThemeNAME_form_element($element, $value) {
$output = ' <div class="form-item"';
if(!empty($element['#id'])) {
$output .= ' id="'. $element['#id'] .'-wrapper"';
}
$output .= ">\n";
$required = !empty($element['#required']) ? '<span class="form-required" title="'.t('This field is required.').'">*</span>' : '';
if (!empty($element['#title'])) {
$title = $element['#title'];
if (!empty($element['#id'])) {
$output .= ' <label for="'. $element['#id'] .'">'. t('!title: !required', array('!title' => filter_xss_admin($title), '!required' => $required)) ."</label> \n";
}
else {
$output .= ' <label>'. …Run Code Online (Sandbox Code Playgroud) 更新(根据每个人的回复):
我正在考虑改变我的结构,以便我有一个名为prx_tags_sportsitems的新表.我将完全删除prx_lists.prx_tags_sportsitems将作为ID表的引用来替换prx_lists.ListString,该prx_lists.ListString曾用于存储属于每个prx_sportsitem的标签的ID.
新关系将是这样的:
prx_tags将包含TagName.这样我仍然可以将每个"标签"维护为一个单独的唯一实体.
我查找所有标有"有氧"标签的sportsitems的新查询将类似于以下内容:
SELECT prx_sportsitems.* FROM prx_sportsitems, prx_tags_sportsitems
WHERE prx_tags_sportsitems.OwnerID = prx_sportsitems.ID
AND prx_tags_sportsitems.TagID = (SELECT ID FROM prx_tags WHERE TagName = 'aerobic')
ORDER BY prx_sportsitems.DateAdded DESC LIMIT 0,30;
Run Code Online (Sandbox Code Playgroud)
或许我可以用"IN"条款做点什么,但我还不确定.
在我对脚本进行这么大的修改之前,每个人都赞成吗?评论?非常感谢!
原始邮寄:
说到MYSQL查询,我很新手.当我最初设计我的数据库时,我做了一些相当愚蠢的事情,因为它是我能找到的唯一解决方案.现在我发现它似乎对我的MYSQL服务器造成了太大的压力,因为执行每个查询需要0.2秒,我相信如果它是一个更好的查询可能更像0.02秒(或表设计,如果它来吧!).我想避免需要重建我的整个网站结构,因为它的设计方式与目前的方式非常相似,所以我希望有更快的mysql查询.
我的数据库中有三个表:
每个体育项目都分配有多个标签名称(类别).每个"标签"都作为单独的结果存储在prx_tags中.我在prx_sportsitems中为体育项创建prx_lists中的"列表",并通过链接到prx_sportsitems.ID的prx_lists.OwnerID链接它们.
这是我当前的查询(查找所有标记为"有氧"的体育项目):
SELECT prx_sportsitems.*
FROM prx_sportsitems, prx_lists
WHERE prx_lists.ListString LIKE (CONCAT('%',(SELECT prx_tags.ID
FROM prx_tags
WHERE prx_tags.TagName = 'aerobic'
limit 0,1),'#%'))
AND prx_lists.ListType = 'Tags-SportsItems'
AND prx_lists.OwnerID = prx_sportsitems.ID
ORDER BY prx_sportsitems.DateAdded …Run Code Online (Sandbox Code Playgroud) 我有一堆物体(气球)向上移动,撞到屋顶(即object.yPos <= 0),然后停下来.跟随他们的气球击中现有的气球并停下来.现在,我在气球上射击并移除那些被击中的球......如果它们已经在底部那么容易.然而,我还必须移除那些在其支撑锚被击中并被移除后悬挂的气球,即它们不再连接到屋顶或任何其他球.与此相关,我在我的Balloon对象中有以下支持方法:
balloon.getAdjacentList() - >返回附加到气球的所有气球的ArrayList
balloon.getX() - >返回气球的X Pos
balloon.getY() - >返回气球的Y Pos
我能想到的一种检测"悬空"气球的方法是使用DFS或BFS的"图形遍历",其中原点将是被击中(并被移除)的一个相邻球,目的地将是...如果任何相邻的球(或"相邻的相邻"球或"相邻的相邻"球等)具有getY()<= 0,即找到通向屋顶的路径.
这项检查似乎非常昂贵,特别是在移除一个或两个吊球时,我必须进行数十次搜索.还要记住,从理论上讲,一个气球可能还有许多其他气球,并且仍然有它的锚(支撑它们全部到屋顶的那个)撞击和移除,因此所有它们都必须......所以... if(getAdjacent().size()== 0)不起作用.
1-有什么更好的想法,看起来很容易想象,并在如此多的游戏中实现?2-我可以添加哪些支持方法来帮助我检测球?
在此先感谢您的帮助
我花了相当多的实验来澄清对Objective-C的"ModalForWindow"语言的一些混淆,以及随后如何使用模态会话.也许以下提示可以节省一些时间:
(如果您不熟悉这个概念:当一个窗口,通常是一个面板,运行模态时,它会阻止应用程序的其他部分响应,直到它被解除.)
"ModalForWindow"在不同的情况下意味着不同的东西.如果您使用loadNibNamed显示由xib定义的面板并且您希望它运行modal,请在显示后调用它:
// Make panelReviewImports modal, so that no other part of app will respond.
[[NSApplication sharedApplication] runModalForWindow:self.panelReviewImports];
Run Code Online (Sandbox Code Playgroud)
并在其解雇方法中采取以下措施:
[[NSApplication sharedApplication] stopModal];
Run Code Online (Sandbox Code Playgroud)
但对于NSAlert,beginSheetModalForWindow中的"窗口"指的是警报将作为工作表附加到的窗口,该窗口将被冻结,直到警报被解除.但该应用程序不会被冻结; 所有其他窗户将保持可操作性.如果您要附加警告如纸和也 明确冻结的应用程序的其余部分,按照beginSheet代码用一个简单的调用runModal并使用返回代码,如下所示:
[alert beginSheetModalForWindow:self.window
modalDelegate:self didEndSelector:@selector(abandonmentAlertDidEnd:returnCode:contextInfo:)
contextInfo:nil];
NSInteger returnCode = [alert runModal];
[self abandonmentAlertDidEnd:alert returnCode:returnCode contextInfo:nil];
Run Code Online (Sandbox Code Playgroud)
(当然,您将实现了abandonmentAlertDidEnd:returnCode:contextInfo:代码作为类方法.)
或者,如果您希望警报作为居中面板运行,请自行调用runModal.
假设您要运行面板模式,如果用户提交无效条目,则后跟警报.在显示警报之前,您必须先停止模式 - 之后,由于某种原因,另一次调用runModalForWindow无法正常工作.对于此场景,您需要一个模态会话:
1)将NSModalSession属性添加到控制器类,因为modalSession必须可以跨多个方法访问.
2)显示面板后,调用beginModalSessionForWindow来实例化modalSession:
self.modalSession = [[NSApplication sharedApplication] beginModalSessionForWindow:self.panelForInput];
Run Code Online (Sandbox Code Playgroud)
3)使用调用runModalSession的while循环进行跟进,当它的返回值不等于NSRunContinuesResponse时断开:
while ([[NSApplication sharedApplication] runModalSession:self.modalSession] == NSRunContinuesResponse)
continue;
Run Code Online (Sandbox Code Playgroud)
循环将中断,当用户点击其中一个面板按钮时,应用程序将释放.(在面板的文本字段中输入将使模态会话保持不变.)
4)在按钮处理中,如果用户的条目无效,则使用runModal调用警报.
5)紧接警报调用之后,在解除警报后将执行的代码中,您将上面使用的相同的while循环置于其中.小组的模态会话重新开始.
6)在关闭面板的处理中,无论是在有效输入还是取消时,都会调用endModalSession,奇怪的是,这是不够的; 你也必须调用stopModal,即使你从未调用runModalForWindow.
[[NSApplication sharedApplication] endModalSession:self.modalSession];
[[NSApplication sharedApplication] stopModal];
[self.panelForInput close];
Run Code Online (Sandbox Code Playgroud) 有没有办法可以使用默认的django缓存框架无限期地设置缓存密钥?我尝试将超时设置为0,但不幸的是,这根本没有设置密钥.
我正在寻找有关如何使用GWT 2.1 Editor框架的一些文档或示例.谷歌的文档是呃,有点缺乏.
从可用的有限文档中,我已经能够理解编辑器(理论上)将允许您更轻松地将GUI元素绑定到数据模型.这将缓解将数据复制到TextArea/ListBox/CheckBox,然后将用户的更改复制回底层模型(最终是数据库)的常见任务.
如果确实能够实现这一目标,那将非常受欢迎.就目前而言,我对如何实施其中任何一个都感到很头疼.任何指向文档或示例的指针都将受到高度赞赏.