有没有办法在运行时发现给定类存在哪些子类?
编辑:从答案到目前为止,我认为我需要澄清一点我想做的事情.我知道这在Cocoa中并不常见,并且可能会有一些警告.
我正在使用动态创建模式编写解析器.(参见Buck and Yacktman撰写的Cocoa Design Patterns一书,第5章.)基本上,解析器实例处理堆栈,并实例化知道如何执行某些计算的对象.
如果我可以获得MYCommand
该类的所有子类,我可以为用户提供可用命令的列表.此外,在第5章的示例中,解析器具有替换字典,因此可以使用+, - ,*和/等运算符.(它们映射到MYAddCommand
等等)对我来说,似乎这些信息属于MyCommand
子类,而不是解析器实例,因为它有点挫败了动态创建的想法.
我正在SQL Server 2008中编写一些存储过程,并想知道可选输入参数的概念是否可行?
我想我总是可以为我不想使用的参数传递NULL,检查存储过程中的值,然后从那里拿东西,但我感兴趣的是这里有这个概念.谢谢!
我正在尝试在做一些冗长的工作之前向客户端发送一些内容:
Response.Write("Processing...");
Response.Flush();
System.Threading.Thread.Sleep(5000);
Response.Write("Finish");
Response.End();
Run Code Online (Sandbox Code Playgroud)
在Firefox中,它按预期工作,但在IE8,Safari和Chrome中,它等待所有代码处理完毕,然后显示整个文本.
我尝试发送一个更好的HTML,如下面的示例,但我得到相同的结果:
Response.Write("<html><head><title>test</title></head><body>Processing...</body></html>");
Response.Flush();
System.Threading.Thread.Sleep(5000);
Response.Write("Finish");
Response.End();
Run Code Online (Sandbox Code Playgroud)
谢谢!
嘿!我正在做这个项目,现在我正在尝试:
无论如何,我只是在网上搜索,我来到了stl for_each函数.看起来很整洁,但我遇到了问题.我试图以这种方式使用它:
for_each(V.begin(), V.end(), iterateThroughSmallVectors);
Run Code Online (Sandbox Code Playgroud)
iterateThroug ....只是在传递给它的向量上做同样的事情.
现在我得到一个奇怪的"矢量迭代器不兼容"运行时错误.我已经查看了它,但在此找不到任何有用的输入..
我不知道它是否有帮助,但V是存储在A类中的私有向量<>,它有一个访问器,我试图通过执行以下操作在B类中迭代它:
A->getV().begin(), A->getV().end(), etc..
Run Code Online (Sandbox Code Playgroud)
任何人都知道发生了什么事?
编辑:好的,所以我认为发布代码更好,问题可能会出现......
gameState.h中的getTiles:
vector<vector<tile*>> getTiles();
Run Code Online (Sandbox Code Playgroud)
main.cpp中的for_each循环:
for_each(currState->getTiles().begin(),currState->getTiles().end(), drawTiles);
.
.
void drawTiles(vector<tile*> row)
{
for_each(row.begin(), row.end(), dTile);
}
void dTile(tile *t)
{
t->draw();
}
Run Code Online (Sandbox Code Playgroud)
创建向量:
int tp = -1;
int bCounter = 0;
int wCounter = 0;
for (int i = 0; i < 8; i++)
{
vector<tile*> row(8);
for (int j = 0; j < 8; j++)
{
tile *t = new tile(tp, …
Run Code Online (Sandbox Code Playgroud) 对于具有2个变量的线性模型
r = lm(y ~ x1+x2)
Run Code Online (Sandbox Code Playgroud)
当我跑步的时候 plot(r)
,我得到了一堆图,比如残差和拟合值等,但我一次只看其中一个.
有没有办法将它们分开?
在MySQL中添加创建和修改字段的最佳方法是什么:
1)使用像on update CURRENT_TIMESTAMP
或等的MySQL功能
2)使用PHP(或其他)?为什么?
如果答案是MySQL,你会怎么做?
我正在使用Prism实现事件聚合.我有几个模块,我希望他们每个人订阅事件,告诉他们什么时候被请求.我开始用shell中的订阅和发布者做一个简单的例子.没有问题.现在; 当我将订户移到我的模块时,他们不会被触发.更奇怪的是它实际上已经工作了几次 - 所有这些我都在断点中待定.所以在我看来是一些竞争条件,但我不明白为什么.
假设:我不需要在任何地方设置IEventAggregator - 例如在IoC容器中注册?这是内置于Prism中的,因此我只有一个事件聚合器实例,对吗?
所以,问题基本上是我应该如何/何时/何时设置我的订阅者.东西等有特定的订单吗?在我的简化示例中,我有一个模块MyModule.Bootstrapper会将MyModule添加到目录中 - 使其初始化:
catalog.AddModule(typeof(MyModule));
Run Code Online (Sandbox Code Playgroud)
MyModule将存储聚合器并使用它来订阅MyModuleRequestedEvent.它还使用菜单注册表在应用程序菜单中注册.这个想法是最终点击菜单应该触发事件 - 通知MyModule它已被请求.然后我希望MyModule有责任弄清楚该做些什么.
public MyModule(IEventAggregator aggregator, IApplicationMenuRegistry menu)
{
_applicationMenu = menu;
_aggregator = aggregator;
}
public void Initialize()
{
var evnt = _aggregator.GetEvent<MyModuleRequestedEvent>();
evnt.Subscribe(MyModuleRequested);
_applicationMenu.RegisterMenuItem("MyModule", evnt);
}
public void MyModuleRequested(bool b)
{
MessageBox.Show("MyModule requested");
}
Run Code Online (Sandbox Code Playgroud)
现在,我的shell中有一个按钮,可以发布此事件.shell在解析时获得相同的(?)事件聚合器.
public Shell(IEventAggregator aggregator)
{
InitializeComponent();
var evnt = aggregator.GetEvent<MyModuleRequestedEvent>();
EventTriggerButton.Click += (s, e) => evnt.Publish(true);
}
Run Code Online (Sandbox Code Playgroud)
笔记:
什么是用于创建动态滚动实现的好算法?该功能将在自定义UI列表上进行测试.虽然我的目标是移动设备(那些没有内置此功能的设备),但是来自不同编程领域的任何算法或代码示例也可能适用.
我有这个models.py
import datetime
from django.db import models
from tinymce import models as tinymce_models
from filebrowser.fields import FileBrowseField
class ItemWithMedia(models.Model):
created = models.DateTimeField(auto_now_add=True)
modified = models.DateTimeField(auto_now=True)
class Actual(ItemWithMedia):
published = models.DateField('Published')
title_hr = models.CharField('(hr)', max_length=200)
title_en = models.CharField('(en)', max_length=200)
body_text_hr = models.TextField('(hr)')
body_text_en = models.TextField('(en)')
def __unicode__(self):
return self.title_hr
class Meta:
verbose_name = "Aktualno"
verbose_name_plural = "Aktualni"
ordering = ['-published']
Run Code Online (Sandbox Code Playgroud)
当我尝试在管理站点中创建新项目时出现此错误:无法分配无:"Actual.published"不允许空值.
可能是什么问题呢?