是否有内置的转换IEnumerator<T>方式IEnumerable<T>?
我正在覆盖我的doSave()方法基本上执行以下操作:我有一个用户可以选择的sfWidgetFormPropelChoice字段,或者键入一个新选项.如何更改小部件的值?或许我接近这个错误的方式.所以这是我如何覆盖doSave()方法:
public function doSave($con = null)
{
// Save the manufacturer as either new or existing.
$manufacturer_obj = ManufacturerPeer::retrieveByName($this['manufacturer_id']->getValue());
if (!empty($manufacturer_obj))
{
$this->getObject()->setManufacturerId($manufacturer_obj->getId()); // NEED TO CHANGE THIS TO UPDATE WIDGET'S VALUE INSTEAD?
}
else
{
$new = new Manufacturer();
$new->setName($this['manufacturer_id']->getValue());
$new->save();
$this->getObject()->setManufacturerId($new->getId()); // NEED TO CHANGE THIS TO UPDATE WIDGET'S VALUE INSTEAD?
}
parent::doSave($con);
}
Run Code Online (Sandbox Code Playgroud) 所以我建立了一个类似于 Twitter 的分页系统,其中显示了 20 个结果,用户可以单击一个链接来显示接下来的 20 个或所有结果。显示的结果数量可以由 URL 末尾的参数控制,但是,这不会使用 AJAX 进行更新,因此如果用户单击其中一个结果然后选择返回,他们必须仅从 20 开始返回结果。
我的一个想法是,如果我在使用 AJAX 获取结果时更新 URL,它应该——我希望——使用户能够来回移动而不会丢失显示的结果数量。
这实际上是可能的还是我完全错了?
另外,我将如何更改 URL?我有一种使用 javascript 编辑 URL 并将其设置为变量的方法,但我不确定如何将该变量应用于 URL。
这里的任何帮助都会很棒!
旁注:我使用 jQuery 的 load() 函数来完成我所有的 AJAX。
假设我有:
unsafe {
byte* start = GetStartLocation();
int something = start[4];
}
Run Code Online (Sandbox Code Playgroud)
什么是something?内存地址的值从开始减少4个字节?
如果你有一个创建粒子系统的脚本,然后从prim中删除脚本,那么粒子似乎不会消失.我怎么能摆脱他们?
我正处于 Blackberry/J2ME 项目的开始阶段 —— 加上这个出色平台带来的其他限制,缺乏对反射和 1.3 语言级别的支持意味着绝大多数现有的 IoC 容器都无法使用。(谷歌有没有 AOP 的 Android 版 Guice,但即使这样也需要支持注释)。
因此,J2ME 上 IoC 容器的空间非常有限。引起我注意的一个框架称为Signal Framework,它看起来很有前途。它试图在概念上接近 Spring Framework 的 IoC,实现其功能的一小部分,并且不依赖字节码修改或导致运行时 xml 解析。相反,它在构建时处理配置 XML 以生成实现此 IoC 功能的 Java 代码。
一般来说,在构建时生成代码对于移动应用程序来说似乎是一种非常明智的方法——如果我的应用程序必须在用户设备上进行较少的 XML 解析,那也太棒了!
那么,您在 J2ME/CLDC 上实现 IoC 的经验是什么,您是如何消除口中苦涩的?
我目前有一个UITableView,其中填充了一个单独的笔尖中的自定义UITableViewCell.在单元格中,有两个按钮连接到自定义单元类中的操作.当我单击其中一个按钮时,我可以调用正确的方法,但我需要知道按下哪一行按钮.每个按钮的标签属性为0.我不需要知道整个单元格的时间选择,只是当按下一个特定的按钮时,所以我需要知道它是哪一行,所以我可以更新正确的对象.
我的CFormView派生类的结构如下:
class FormViewClass : public CFormView
{
...
FormViewClass();
void Initialize();
virtual void OnInitialUpdate();
...
};
Run Code Online (Sandbox Code Playgroud)
理想情况下,我想在构造函数的主体中调用Initialize()函数,如下所示:
FormViewClass::FormViewClass()
{
...
// originally I want to call Initialize function here
Initialize();
...
}
Run Code Online (Sandbox Code Playgroud)
但是,由于我希望此函数在创建时负责此类的所有初始化,并且它包含MFC对象初始化,例如组合框,编辑控件,复选框控件,单选按钮控件等,我是否应该调用像我想的那样在这里初始化()函数:
void FormViewClass::OnInitialUpdate()
{
// Should I call Initialize function instead here?
Initialize();
}
Run Code Online (Sandbox Code Playgroud)
目前我在构造函数中有非MFC内存和对象初始化(因此在构造函数中调用Iniitalize()辅助函数)和OnIniitalUpdate()处理函数中的MFC对象iniitalization.听听你对它的想法会很好,这样我就可以正确地重构代码.提前致谢.
在一个程序中,我正在读取一些数据文件,其中一部分格式化为一系列记录,每个记录都放在方括号中.每条记录都包含一个部分标题和一系列键/值对.
我最初编写代码来循环并提取值,但决定使用正则表达式可以更优雅地完成.下面是我生成的代码(我刚刚在控制台应用程序中将其破解 - 所以知道变量名称不是很好,等等.
你能建议改进吗?我觉得没有必要做两个匹配和一个子串,但无法弄清楚如何在一个大步骤中完成所有操作:
string input = "[section1 key1=value1 key2=value2][section2 key1=value1 key2=value2 key3=value3][section3 key1=value1]";
MatchCollection matches=Regex.Matches(input, @"\[[^\]]*\]");
foreach (Match match in matches)
{
string subinput = match.Value;
int firstSpace = subinput.IndexOf(' ');
string section = subinput.Substring(1, firstSpace-1);
Console.WriteLine(section);
MatchCollection newMatches = Regex.Matches(subinput.Substring(firstSpace + 1), @"\s*(\w+)\s*=\s*(\w+)\s*");
foreach (Match newMatch in newMatches)
{
Console.WriteLine("{0}={1}", newMatch.Groups[1].Value, newMatch.Groups[2].Value);
}
}
Run Code Online (Sandbox Code Playgroud)